ich hab nur ne kurze frage muss man das frame error bit beim mega644 pollen oder triggert da auch ein interrupt (wenn ja welcher).
da steht bei erfolgreichem empfang wird tx-cmplete getriggert (aber is nu framing error erfolgreich? ) .
Hallo, der Empfänger triggert auf die 1. Flanke des Startbits, und liest die 10Bits (bei 8N1) in festen Zeitabständen ein. Danach wird der RX-complete-INT gesetzt. Einen FE bekommst du dann wenn das Stopbit den falschen Pegel hatte. Sascha
TXC triggert immer, wenn die gewünschte Anzahl von Bits ausgesendet wurde. RXC triggert immer, wenn die gewünschte Anzahl von Bits inklusive Start- Stop- und eventuell Paritybits eingetroffen ist. Im RXC-Interrupt kontrolliert man vor dem Einlesen der Daten aus dem UDR sinnvollerweise, ob die Fehlerstatusbits 0 sind, da ansonsten das Byte fehlerhaft empfangen wurde. Außerdem muß man die Fehlerstatusbits vor dem UDR-Lesen testen, da sie danach nicht mehr gültig sind.
Max schrieb: > da steht bei erfolgreichem empfang wird tx-cmplete getriggert Ich kann das nicht finden. Auf welcher Seite steht das?
Hi >> da steht bei erfolgreichem empfang wird tx-cmplete getriggert >Ich kann das nicht finden. Auf welcher Seite steht das? Ist auch irrelevant, da die Fehlerbits nur für RX gültig sind. MfG Spess
spess53 schrieb: >>> da steht bei erfolgreichem empfang wird tx-cmplete getriggert >>Ich kann das nicht finden. Auf welcher Seite steht das? > > Ist auch irrelevant, da die Fehlerbits nur für RX gültig sind. Darauf bezog sich meine Frage nicht. Das sollte auch Dir klar sein. Ich finde keine solche Aussage, in der von "erfolgreichem" Empfang in Bezug auf den RX Interrupt die Rede ist.
"Erfolgreich" ist der Empfang, wenn die entsprechende Nummer an Bits angekommen ist. Das ist auch im Fehlerfall gegeben.
Hallo Max, ist Deine Frage schon beantwortet ? Wenn nicht, hier ein Hinweis. Im Datenblatt, im Kap. 17.7.4 "Receiver Error Flags" steht deutlich: "None of the Error Flags can generate interrupts." "Frame Error", genauso wie die anderen Error Flags, Data OverRun (DORn) and Parity Error (UPEn), sind nur beim Empfang interessant. Die Daten werden auf jeden Fall empfangen und im Receive Buffer gespeichert. Danach erfolgt ein Interrupt. Innerhalb der Interrupt Routine können und sollten die Fehlerflags abgefragt werden. Die vollständige Antwort ist also: "Frame Error" löst selbst keinen Interrupt aus. Ein Pollen macht allerdings auch keinen Sinn, da erst nach Empfang von Daten dieses Bit entsprechend gesetzt wird. Abfrage kann in der Interrupt Routine erfolgen. Gruß
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.