moin moin,
in der Richtung hab ich auch schon mal experimentiert hab es aber nicht geschafft.
Um gleichzeitig senden und emfangen zu können hab ich die SerWrite in asuro.c geändert.
Code:
UCSRB = 0x08; ==> UCSRB = 0x18;
Und im Hauptprogramm sende ich ein Zeichen. Dann lese ich mit SerRead das emfangene Zeichen ein.
Die Auswertung sollte eigentlich so laufen:
Das emfangene Zeichen ist gleich dem gesendeten Zeichen
==> Abstand gering.
Es wird ein Zeichen emfangen aber es ist _nicht_ das gesendete
==> Abstand mittel.
Es wird "T" zurückgegeben also der Timeout, kein emfang
==> großer Abstand zum Hindernis.
Aber egal was ich mache, selbst wenn ich den Emfänger abdecke ich lese jedes Mal den gesendeten Wert. Es sieht so aus als ob immer der gesendete Wert im emfangsregister liegt.
Bis jetzt bin nicht dazu gekommen im Datenblatt mal nachzulesen wie der UART funktioniert. Ich vermute das da noch ein Fallstrick vorhanden ist.
Gruß
pinsel
Lesezeichen