:: Senden und Empfangen mit dem UART

Gast #28200
Lesenswert?
• ▲
▼
Hallo,
wie schon einmal erläutert, versuche ich meinen AVR, einen AT90S4433, 
via SMS fernzusteuern. Die Hardware, habe ich inzwischen aufgebaut und 
sie funktioniert. Auch kann ich mkit dem ATD- Befehl einen beliebigen 
Teilnehmer anrufen.
Mein Problem besteht nun darin, dass ich die Antworten des AVR auswerten 
muss. Dieses ist mir bis dato nicht gelungen. Die Ports PD0 und PD1 des 
AVR habe ich über einen MAX232 mit dem Mobiltelefon verbunden.
Ich programmiere den AVR in BASCOM und es gelingt mir nicht. Muss die 
Schnittstelle für das Senden und Empfangen immer wieder öffnen und 
schließen, oder gibt es eine "einfachere" Methode?
Zur Zeit mache ich das mit
OPEN "comd.1:19200,8,n,1" For OutPut as #1

Sollte zufällig jemand ein Quellcode in dieser Richtung zur Verfügung 
haben, wäre es nett, wenn er ihn mir zuschicken könnte.

Mit freundlichem Gruß,
Steffen
Gast #28201
Lesenswert?
• ▲
▼
Hallo Steffen,

eigentlich brauchst du die Schnittstelle nicht zu öffnen, das ist nur 
bei einem Software UART notwendig.
Zeichen Senden machst du mit Print "hallo"
Empfangen mit Inkey()
vergesse auch nicht den Buffer zu aktivieren, sonst könnten dir Zeichen 
verlohren gehen.
Das Umsetzen der SMS via AVR ist kompliziert, da z.B. die Siemens Handy 
alle nur PDU format beherschen,außer die Terminals von Siemens, die 
kosten aber richtig Geld.
Eine schöne verständliche Umsetzung der PDU findest du hier: 
http://www.dreamfabric.com/sms/
Für den Buffer: Config Serialin = Buffered, Size = 40

Eine Initialisierung des Handy's mit:

Init:


  Print "AT"
  Waitms 150
  Print "AT"
  Waitms 100
  Print "at+cpms=" ; Chr(034) ; "sm" ; Chr(034) ; "," ; Chr(034) ; "sm" 
; Chr(034)
  Waitms 100

Print "AT+CMGF=0"
Waitms 100
Flushbuf
Print "AT+CNMI=1,1,0,0,1"
Waitms 100

Damit werden der Speicher festgelegt (Sim Karte), Information über neue 
Nachrichten, und PDU Format eingestellt.

Hoffe das hilft dir vielleicht weiter.

Im Übrigen, es ist zu empfehlen, den Buffer nach jeder Decodierung 
vollständig zu Leeren, damit er beim nächsten Nachrichteneingang nicht 
überläuft, aber ich weiß jetzt den Befehl dazu nicht mehr, er ist auf 
jeden Fall nicht in der Bascom Hilfe dokumentiert.


Sven

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.