Hallo. Wenn ich beim ATMega644 den UART Transmitter disable (UCSR0B &= ~_BV(TXEN0), wird noch ein Zeichen geschickt. Warum, und wie kann ich das verhindern? Danke im voraus, Gerhard
Hallo, es wird vermutlich kein Zeichen geschickt, allerdings erkennt ein Empfänger den Beginn eines Startbits, wenn der Port Ausgang und L ist. Port als Ausgang und H setzen und dann abschalten sollte helfen. Gruß aus Berlin Michael
Das könnte sein. Nur kann ich auf den Port nichts schreiben, solange TXEN0 sitzt. Das overruled die port settings.
du kannst die DDR und PORT Register immer beschreiben, nur das der dort vorgegebene Zustand für das TX-PIN erst bei TXEN = 0 wirksam wird - und genau das brauchst du ja! Sascha
Ok, hat funktioniert, danke. Jetzt kommen jedoch nach jedem transmit noch 3 Zeichen (0x00) hinten nach. Ich mach folgendes: - aufwachen aus power - save - TXEN und transmit - flush/warten bis alles übertragen - Uart abdrehen (PORT hi und TXEN = 0) - power save
?? nachdem Übertragen der Daten und Power save kommen am Empfänger noch 3 Bytes an ?? hast du den TX-PIN im DDR auch auf Ausgang gesetzt? Sascha
So ähnlich. 1 Byte kommt glaub ich vor sleep und 2 nachdem wieder aufgewacht wurde. DDR hab ich richtig gesetzt. Gerhard
Ein Problem ist (und möglicherweise die Ursache), dass das letzte byte nicht richtig übertragen wird, wenn nach flush in power save Modus gewechselt wird. Gerhard
das kann sein - wie sieht dein flush/warten aus ?? - wenn du auf UDRE0 wartest wird das letzte Byte noch gesendet, wenn UDRE schon 1 ist - sonst mit TXC0 warten - löschen aber nicht vergessen - oder ne Pause nach UDRE0=1 machen die dafür sorgt, das das letzte Byte noch raus geht Sascha
Ok, das war's. Warte jetzt beim flush auf TXC0, und es haut hin. Das war eine schwere Geburt. Vielen Dank! Gerhard
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.