Gast
#2094545
Hallo liebe µC-Programmierer, die von mir anvisierte Anwendung ist denkbar einfach. Der serielle Ausgang eines GPS-Moduls wird auf RXD (Pin14 / Port D.0) eines ATMEGA32 übergeben. Die Abfrage soll mit waitchar() geschehen - hier wird aber nichts erkannt. Um zu überprüfen, ob denn überhaupt irgendwelche Zeichen ankommen, habe ich mit ischarwaiting() mal auf den Port gehört und erhalte immer nur 0 zurück. Die elektronische Überprüfung (Oszi) des Ports ergibt, dass im Sekundentakt saubere Bursts gesendet werden. Wenn ich nun den Port mit dem Befehl "Serin" abfrage, kann ich einwandfrei Daten auslesen. Ich vermute, dass der serielle Port für die Anwendung mit waitchar() falsch konfiguriert ist. Auf einem ATMEGA8 hingegen läuft die Sache wie im Listing dargestellt. Was könnte hier falsch sein? Die wichtigsten Teile des Listings siehe hier: $regfile = "m32def.dat" $crystal = 8000000 $baud = 9600 $hwstack = 32 $swstack = 10 $framesize = 40 Dim S As String * 100 Dim H As Byte Config Serialin = Buffered , Size = 100 Cls Cursor Off Noblink Clear Serialin S = "" Serin S , 0 , D , 0 , 9600 , 0 , 8 , 1 H = Ischarwaiting(3) Cls Lcd H Waitms 500 Cls Upperline Lcd Left(s , 16) End Schöne Grüße & danke im Voraus Peter