DMX Usart: ISR löst 514x aus nicht 512x

OP #1494671
Lesenswert?

Hi,

hab grad ein kleines problem mit dem empfangen von dmx-datenpaketen (512 
Werte): es werden zwar alle Kanäle empfangen, allerdings löst die ISR 
nicht 512x aus sondern 514x aus; bei allen Interrupts ist auch das 
AT91C_US_RXRDY Bit gesetzt.

entsprechend ist der erste DMX-Wert im Array nicht der Wert Array[0] 
sondern der Wert Array[1]. Sprich die ISR empfängt einen Interrupt nach 
der Break, dann empfängt die ISR alle 512 Kanäle und anschließend 
nochmals einen Interrupt (wenn die Break anfängt))....

Ist das normal?

Baudrate 250kBaud, und Clock vom Prozessor stimmen; 8 Datenbits, zwei 
Stoppbits und ein Startbit sind auch ausgewählt.

Gruß
Bernd
#1494679
Lesenswert?

Für den empfangenden UART ist der Break ein Frame-Error. Je nach dem wie 
er konfiguriert ist (bzw. sich konfigurieren läßt) löst auch ein 
Frame-Error einen Interrupt aus. Die ISR muß dann anhand der 
Status-Flags des UART unterscheiden, welcher Fall vorliegt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren