Interfacing Atmega 32 met GSM Mobile

D

dadda007

Guest
Hi all,

Ik ben geconfronteerd met moeilijkheden decoderen van een SMS van GSM met mijn micro-controller.Na het versturen van de juiste AT commando ik probeer te decoderen de PDU mode formaat van de SMS.In de volgende code Ik lees de zevende plaats in het mobiele GSM-geheugen ingesteld en decoderen van de PDU om het bericht te halen "Hi", met de verpakte PDU code "C834", ik ben van plan om de waarde 0x0F PORTA op te zetten.Maar dit idee lijkt niet te werken ....cud iemand helpen plz????

Code:# include <avr/io.h>

# include <util/delay.h>void init_usart (void) / * om USART initialse voor het doorgeven * /

void data_send (int); / * voor het verzenden van de gegevens * /

int data_rxr (void); / * te ontvangen van de gegevens * /int main (void)(int c [13] = ( 'A', 'T',' ',' C', 'P', 'M', 'S', 0x3D, 0x22, 'M', 'E', 0x22, 0x0D ); / * te selecteren memeory als de mobiele apparatuur * /

int c1 [10] = ( 'A', 'T',' ',' C', 'M', 'G', 'F', 0x3D, 0x30, 0x0D); / * Selecteer het formaat van sms als PDU format * /

int d [2] = (0xC8, 0x34);

int ch [10] = ( 'A', 'T',' ',' C', 'M', 'G', 'R', 0x3D, 0x37, 0x0D), i, j [29], vlag / * om te lezen de 7 geheugenlocatie * /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 ) / * ontvangen de PDU string die is 29 bytes lang * /

j = data_rxr ();if ((j [27] == d [0 ])&&( j [28] == d [1])) / * Controleer of de 28 en 29 plaats, dat wil zeggen de laatste 2 locaties zijn gelijk aan verpakt formaat van Hi of niet * /(flag = 1;

break;)anders

flag = 0;if (flag == 1) / * in geval van de echte toestand sturen 0x0F aan PORTA * /

PORTA = 0x0F;anders

PORTA = 0x00;)return 0;)void init_usart (void)(/ / UBRRH = 0x00;

UBRRL = 0x33;

/ / UCSRC = 0x86;

UCSRB = 0x18;

/ / UCSRA = 0x00;)void data_send (int a)(while (! (UCSRA & (1 <<UDRE)));UDR = a;

PORTB = 0x0F;)
int data_rxr (void)(int a;while (! (UCSRA & (1 <<RXC)));a = UDR;

PORTB = 0x0F;return a;)
 
Zielony producent kart graficznych jakiś czas temu wypuścił na rynek serię bardzo wydajnych i równocześnie bardzo drogich kart graficznych. Mowa oczywiście o serii GTX Titan, których najdroższy przedstawiciel, czyli GTX Titan Z został wyceniony na aż 3000 USD. Nie odniósł on jednak rynkowego sukcesu, co nie jest szczególnym zaskoczeniem biorąc pod ...

Read more...
 

Welcome to EDABoard.com

Sponsor

Back
Top