mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik :: Senden und Empfangen mit dem UART


Autor: Steffen Klein (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sven (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.