www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Von Siemens C35i Daten über UART empfangen mit BASCOM


Autor: Philipp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Folgendes Problem: Ich möchte mit einem ATMEGA8 mein Siemens C35i per 
AT-Befehle steuern. Ich habe mein myAVR LPT Board mit RS232 
Schnittstelle mit einem orignalen Siemens Datenkabel mit dem C35i 
verbunden und möchte es damit steuern. Das klappt soweit ganz gut jedoch 
schaffe ich es nicht die Antwort des Handys auf die AT-Befehle zu 
empfangen. Folgendes kleine Programm habe ich in BASCOM geschrieben:

$regfile = "m8def.dat"
$crystal = 3686400    'mein ext. Quarz
$baud = 19200         'laut C35i Anleitung die Baudrate

Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , 
Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2
Config Lcd = 16 * 2   'so ist das LCD an meinem myAVR-Board angeschloßen

Dim B As Byte
Dim Sret As String * 64

Enable Interrupts

Declare Sub Getline(s As String)

Print "AT+CGMI"

Getline Sret

Lcd Sret

Sub Getline(s As String)
 S = ""
 Do
 B = Inkey()
 If B <> 0 Then S = S + Chr(b)

 Loop Until B = 0

End Sub

Verbinde ich das Handy mit meinem PC, so antwortet es im Hyperterminal 
auf den Befehl AT+CGMI mit "Siemens". Genau dies soll auch im LCD meines 
myAVR-Boards stehen. Dort kommt allerdings nur "ppppppppp" an.
Habe auch schon mit den $baud Werten gespielt (2400, 4800, 9600) jedoch 
ohne Erfolg.

PS: Bin absoluter Mikrocontroller und BASCOM Neuling.

Autor: Elektrolyt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
19200 bauds mag der c35...

Autor: Katapulski (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@elektrolyt
>$baud = 19200         'laut C35i Anleitung die Baudrate

...lesen hilft manchmal eine Menge.

gez. Katapulski

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probier bitte nur einen AT abzusetzen. Das Handy antwortet mit OK.

Autor: Joachim R. (bastelbaer)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Philipp wrote:

> $baud = 19200         'laut C35i Anleitung die Baudrate
Und jetzt noch laut Anleitung des BASCOM folgende Anweisung
BAUD = 19200
Mit $Baud setzt du nur die Compilersettings, BAUD den UART.

Und falls es dann immer noch nicht läuft, probier mal gepuffertes Lesen 
via
serielle im Stile von:

Config Serialin = Buffered , Size = 64
Enable Interrupts                 ' Timer und seriellen Buffer 
aktivieren

Wenn du SMS im PDU-Mode auslesen willst ist das auf jeden Fall die 
bessere Idee. Und die Abfrage

Loop Until B = 0

ist auch nicht glücklich. Wenn du zu schnell einliest, dann bricht die 
Routine ab bevor das nächste Zeichen da ist. Besser wäre imho:

  Timeout = 30              ' 3 Sekunden auf Antwort warten
  Rec_string = ""           ' erst mal löschen
  Ende = 0
  While Ende = 0            ' nun bis zum Ende warten
    If Ischarwaiting() = 1 Then     ' wenn was da ist
      Rec_char = Waitkey()          ' einlesen
      Select Case Rec_char          ' und auswerten
      Case 13                      ' ignorieren
        ' do nix
      Case 10                       ' LF empfangen, Zeile da
        Ende=1
      Case Else
        Rec_string = Rec_string + Chr(rec_char)
      End Select
    End If
    ' Evntl. Timeout ablaufen lassen, dann mit Timeout beenden
    If Timeout = 0 Then Ende=2
  Wend

Natürlich die Variablen definieren und Interruptroutine die den Timeout 
runterzählt. Ich habe die Routine so ähnlich für S25 und S45 laufen.

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.