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.
