Hallo, bin der Stephan. 32 und Elektrotechniker. Bin relativ neu hier und deswegen erstmal Hallo an alle! Ich hoffe Ihr könnt mir helfen. Ich möchte gern ein Telit GM862 GSM Modul an einen ATMega32 anschliessen. Ich will bei bestimmten Ereignissen eine SMS Senden. Ich bekomms aber einfach nicht hier. Ich peil das mit der USART nicht. Hab schon viele Beispiele gefunden, aber irgendwie will das nicht in meinen Kopf :-( Ich hab ein kleines Program geschrieben, darin wird die Schnittstelle konfiguriert. Das mit den Registern is mir klar, aber jetz komm ich nicht weiter. Wie krieg ich die Daten gesendet und empfangen? Achja, das Display funktioniert und den Timer brauche ich noch für was anderes. Der geht aber auch. Hier mein Code: //PORTD.4 = Ausgang GSM Modul Ein/Aus #include <MEGA32.h> #include <DELAY.h> #include <lcd.h> #include <stdio.h> #include <math.h> void init (void); int TaktZ_1s=0; int Tatkt_1s=0; char zeile1[25]; char zeile2[25]; void init (void) { #asm .equ __lcd_port=0x18 ;PORTB #endasm lcd_init(16); DDRD=0xff; // PortD als Ausgang DDRC=0x00; // PortC als Eingang SREG=0x80; // Freigabe Interrupt TIMSK=0x04; // Timer Overflow aktivieren TCCR1A=0x00; // Teiler auf 64 TCCR1B=0x03; // Teiler auf 64 TCNT1=64910; // 625*16 µs = 0,01 Sekunde, 65535-625=64910 lcd_clear(); // USART // 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00; UCSRB=0x18; UCSRC=0x86; UBRRH=0x00; UBRRL=0x19; // nur gultig dei 4 MHz } //------------------------------------------------------------------- interrupt [10] void timer1_overflow(void) // 10 ms Takt { TCNT1 = 64910; // 625 * 16 µs = 0,01 Sekunde, 65535 - 625 = 64910 TaktZ_1s++; // 1 Sekunde: if (TaktZ_1s==100) // 100 * 0,01s = 1 Sekunde { TaktZ_1s=0; Tatkt_1s=~Tatkt_1s; PORTD.6=Tatkt_1s; } }; // end timer //------------------------------------------------------------------- void main (void) // Hauptfunktion "main" { init(); while (1) { if(PINC.0==1) // Schalter, GSM Modul ein bzw aus- nur zum Test { PORTD.4=1; lcd_gotoxy(1,1); lcd_putsf("GSM Ein"); } else { PORTD.4=0; lcd_gotoxy(1,1); lcd_putsf("GSM Aus"); } } }
Hallo Michael, besten Dank dafür. Ich will aber Daten an ein GSM Modul senden und nicht an einen PC.
Gibt es mit Sourcecode bei Alex Weber http://tinkerlog.com/2007/07/13/interfacing-an-avr-controller-to-a-gps-mobile-phone/ Gibt aber auch ein fertiges Adapterboard mit Sourcecode hier: http://www.gsm-modem.de/M2M/m2m-apps/arduino-gsm-gps-google-eart/ http://www.gsm-modem.de/M2M/m2m-apps/gsm-gprs-gps-shield-for-arduino-board-duemilanove-atmega328/ Gruß Harald
Hmm, das bringt mich auch nicht wirklich weiter. Ich will doch nichts fertiges kaufen. Dann muss ich wohl weiter probieren.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.