Hallo ihr. Ich möchte mit einem Mega8 DMX-Daten mit dem eingebauten UART empfangen. Die Daten an sich zu empfangen ist nicht das Problem da der µC das ja fast von alleine macht. Mein Problem ist nun den Reset abzufragen. Ich muss ja im Prinzip mit dem UART auf Daten warten und eigentlich auch gleichzeitig gucken ob ein Reset (min. 88µs Lowpegel) kommt. Kann mir da jemand ein paar Tips geben? Danke Heiko PS: Infos zum DMX-Protokoll gibts unter: http://www.soundlight.de/techtips/dmx512/dmx512.htm
Break Erkennung kannst du ganz einfach über das FE-Flag (Framing Error) im UART-Statusregister realisieren.
FE-Flag funktioniert prima. Um sich von Übertragungsfehlern zu schützen (die auch FE setzen könnten) solltest Du noch auswerten, dass das nächste Byte nach FE das Startbyte ist. Stefan
Hallo Ihr. danke schon mal für die Tips. Doch irgendwie klappt das noch nicht so. Wenn ich auf das FE-Flag warte (while(!(UCSRA & (1<<FE)));) um dannach dann mit der Auswertung anzufangen, bleibt der µC in der while-Schleife hängen. Muss ich noch irgendwelche anderen Flags setzen? MfG Heiko
Mit dem warten auf FE ist's so eine sache da unterscheiden sich AT90S und ATMega erheblich, da die neuen Megas über FIFO verfügen. Schau die mal die Codebespiele im Datenblatt an.
zwar nicht explizit zum FE-Flag, sondern dem korrekten Zugriff auf UCSRA und UDR beim USART.
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.