Hallo Forum... nachdem ich Euch nun einen Tag mit der Modemverbindung zu meinem Handy genrvt habe, geht's jetzt weiter :-) Wenn ich im Terminalprogramm eine SMS absetzen möchte, gebe ich erst den Befehl AT+CMGS="01711234567" gefolgt von <CR> Jetzt kommt der Text. Im Terminalprogramm bekomme ich eine Eingabeaufforderung in Form von '>'. Wie kann ich diese im MC abwarten, bevor ich den Text übers UART sende? Bis jetzt sende ich den Text direkt hinterher, bekomme aber nur einen Teil des Textes in der SMS. Vermutlich gehen hier die ersten Zeichen verloren, weil das Handy noch nicht bereit ist. Hat da jemand einen Tipp?
Hallo Carsten, wieso frägst Du nicht einfach in Deiner Empfangsroutine ab, ob Du das '>' empfangen hast und schickst erst anschließend Deine SMS Botschaft raus? Mfg Horni
Probiers doch einfach mal mit ein wenig Verzögerung aus... So ca. 1 Sekunde sollte fürs erste Reichen. Oder Du baust wirklich eine Erkennung für das > ein. Das würde ich in etwa so machen: 2. modem_send("AT+CMGS=..."); 3. while(!findstr(modem_rxbuf, ">")); 4. modem_send(sms_buffer); (so ähnlich jedenfalls, Pseudocode!)
...mhh eigentlich muss ich ja nur irgendeine Antwort abwarten... Hab das jetzt mal so versucht: zuerst UART initialisieren: ldi Temp1,0b00011000 ;TX und RX einschalten out UCR,temp1 ; ldi Temp1,25 ;Baudrate auf 9600 out UBRR,Temp1 Senden: ;Modem ldi ZL, LOW(Sendbefehl*2) ldi ZH, HIGH(Sendbefehl*2) rcall print_Modem rcall nextline Antwort1: sbis USR,RXC rjmp Antwort1 ...hier bleibt der MC aber offensichtlich in der Schleife hängen. Muss ich vor dem Empfangen noch was machen ? Im Terminal funktioniert es beim ersten mal. Sobald ich ein Zeichen sende, kommt der zweite Text. Wenn ich aber den Befehl ein zweites mal sende, kommt der Text sofort hinterher. Die Eingabaufforderung wird aber doch vom Handy geschickt oder macht das der Terminal alleine?
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.