D
dadda007
Guest
Hei kaikki,
Olen edessään vaikea dekoodaus tekstiviesti GSM-minun mikro-ohjain.Lähettämisen jälkeen tarvittaessa AT-komennot yritän purkaa PDU tilan muodon SMS.Kun seuraava koodi Luen seitsemäs sijainti GSM-muisti asettaa ja dekoodaus ongelmakäytön poimia viestin "Hei", on pakattu PDU koodi "C834", aion arvo 0x0f on PORTA.Mutta tämä ajatus ei näytä toimivan ....CUD joku auttaa plz????
Koodi:# include <avr/io.h>
# include <util/delay.h>void init_usart (void) / * ja initialse USART toimittamista * /
void data_send (int), / * lähettää tiedot * /
Int data_rxr (void) / * saada tietoja * /int main (void)(int c [13] = ( 'A', 'T',' ',' C', 'P', 'M', 'S', 0x3d, 0x22, 'M', 'E', 0x22, 0x0d ), / * valitse memeory kuin liikkuva kalusto * /
Int C1 [10] = ( 'A', 'T',' ',' C "," M "," G "," F ", 0x3d, 0x30, 0x0d), / * Valitse muoto SMS kuin PDU format * /
int d [2] = (0xC8, 0x34);
INT CH [10] = ( 'A', 'T',' ',' C', 'M', 'G', 'R', 0x3d, 0x37, 0x0d), i, j [29], lippu ; / * lukea 7 muistipaikka * /DDRA = 0x0f;
PORTA = 0x00;init_usart ();while (1)(for (i = 0, i <13; i )
data_send (c );_delay_ms (100);for (i = 0, i <10; i )
data_send (C1 );_delay_ms (100);for (i = 0, i <10; i )
data_send (CH );for (i = 0, i <29; i ) / * saavat PDU merkkijono, joka on 29 tavua pitkä * /
j = data_rxr ();if ((j [27] == d [0 ])&&( j [28] == d [1])) / * Tarkista onko 28 ja 29 sijainti, eli viimeisen 2 paikat ovat yhtä pakattu muoto Hi tai ei * /(flag = 1;
break
muuten
flag = 0;if (flag == 1) / * jos kyseessä on todellinen edellytys Lähetä 0x0f on PORTA * /
PORTA = 0x0f;muuten
PORTA = 0x00
return 0
void init_usart (void)(/ / UBRRH = 0x00;
UBRRL = 0x33;
/ / UCSRC = 0x86;
UCSRB = 0x18;
/ / UCSRA = 0x00
void data_send (Int)(while (! (UCSRA & (1 <<UDRE)));UDR =;
PORTB = 0x0f
Int data_rxr (void)(int a;while (! (UCSRA & (1 <<RXC)));= UDR;
PORTB = 0x0f;return
Olen edessään vaikea dekoodaus tekstiviesti GSM-minun mikro-ohjain.Lähettämisen jälkeen tarvittaessa AT-komennot yritän purkaa PDU tilan muodon SMS.Kun seuraava koodi Luen seitsemäs sijainti GSM-muisti asettaa ja dekoodaus ongelmakäytön poimia viestin "Hei", on pakattu PDU koodi "C834", aion arvo 0x0f on PORTA.Mutta tämä ajatus ei näytä toimivan ....CUD joku auttaa plz????
Koodi:# include <avr/io.h>
# include <util/delay.h>void init_usart (void) / * ja initialse USART toimittamista * /
void data_send (int), / * lähettää tiedot * /
Int data_rxr (void) / * saada tietoja * /int main (void)(int c [13] = ( 'A', 'T',' ',' C', 'P', 'M', 'S', 0x3d, 0x22, 'M', 'E', 0x22, 0x0d ), / * valitse memeory kuin liikkuva kalusto * /
Int C1 [10] = ( 'A', 'T',' ',' C "," M "," G "," F ", 0x3d, 0x30, 0x0d), / * Valitse muoto SMS kuin PDU format * /
int d [2] = (0xC8, 0x34);
INT CH [10] = ( 'A', 'T',' ',' C', 'M', 'G', 'R', 0x3d, 0x37, 0x0d), i, j [29], lippu ; / * lukea 7 muistipaikka * /DDRA = 0x0f;
PORTA = 0x00;init_usart ();while (1)(for (i = 0, i <13; i )
data_send (c );_delay_ms (100);for (i = 0, i <10; i )
data_send (C1 );_delay_ms (100);for (i = 0, i <10; i )
data_send (CH );for (i = 0, i <29; i ) / * saavat PDU merkkijono, joka on 29 tavua pitkä * /
j = data_rxr ();if ((j [27] == d [0 ])&&( j [28] == d [1])) / * Tarkista onko 28 ja 29 sijainti, eli viimeisen 2 paikat ovat yhtä pakattu muoto Hi tai ei * /(flag = 1;
break
flag = 0;if (flag == 1) / * jos kyseessä on todellinen edellytys Lähetä 0x0f on PORTA * /
PORTA = 0x0f;muuten
PORTA = 0x00
UBRRL = 0x33;
/ / UCSRC = 0x86;
UCSRB = 0x18;
/ / UCSRA = 0x00
PORTB = 0x0f
Int data_rxr (void)(int a;while (! (UCSRA & (1 <<RXC)));= UDR;
PORTB = 0x0f;return