Forum: Mikrocontroller und Digitale Elektronik Bascom SERIN Problem


von Christian H. (konkil)


Lesenswert?

Hallo

Ich habe einen Atmega16 und habe an der normalen UART einen FTDI USB 
hängen.
Diese Kommunikation zum Hterm funktioniert einwandfrei.
Jetzt habe ich noch ein RFID Modul, dass ich per UART an den PortA.0 
angeschlossen habe mit der Tx Leitung.
Wenn ich mit einem USB-UART mich dran schalte, dann sieht man auch dass 
das Modul die richtigen Daten empfängt.

Das Problem ist nur, dass ich mit meinem Bascom Code diese ASCII 
Zeichenfolge von 14 Bytes anscheinend nicht eingelesen bekomme.

Wie funktioniert das genau mit der Soft UART?

Im Moment habe ich folgendes:
1
$regfile = "m16def.dat"
2
$crystal = 4000000
3
$baud = 9600
4
5
   Dim E As String * 20
6
7
   Do
8
9
      Serin E , 0 , A , 0 , 9600 , 0 , 8 , 1
10
      Print e
11
12
   Loop
13
14
End

Das RFID Modul sendet zuerst das Byte 02, dann die ID der RFID KArte und 
zum Schluss das Byte 03

von Karl H. (kbuchegg)


Lesenswert?

http://avrhelp.mcselec.com/index.html?serin.htm

Schau dir speziell die Tabelle mit den Argumenten und ihrer Bedeutung 
an.
1
Bts
2
3
The number of bytes to receive. String variables will wait for a return
4
(ASCII 13). There is no check if the variable you assign is big enough
5
to hold the result.

Tja. Im Falle, dass du eine String Variable benutzt, wartet Serin 
darauf, dass die Gegenstelle einen <Return> schickt.

String
1
   Dim E As String * 20
hast du

> Das RFID Modul sendet zuerst das Byte 02, dann die ID der RFID KArte
> und zum Schluss das Byte 03

aber du hast keinen <Return>



> Wie funktioniert das genau mit der Soft UART?
Im Zweifel ist IMMER die Hilfe deine erste Anlaufstelle, wenn du nicht 
weißt, wie ein Befehl genau funktioniert. Du hast sie auch auf deinem 
Rechner. Drücke in BASCOM auf F1 und die Hilfe geht auf. Du musst sie 
nur nutzen.

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
Noch kein Account? Hier anmelden.