www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DMX Usart: ISR löst 514x aus nicht 512x


Autor: Bernd Schuster (mms)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: R. Max (rmax)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bernd Schuster (mms)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das hab ich auch - beim AT91SAM9263 Prozessor ist das dann ein

if( ulStatus & AT91C_US_RXRDY )
{
  cntr++; 
}

if((ulStatus & AT91C_US_RXBRK) == AT91C_US_RXBRK)
{
  //um den break zu erkennen
  //hier ist dann cntr = 0x202  
}


Gruß
Bernd

Autor: R. Max (rmax)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte es sein, daß beim Break beide Flags gesetzt sind, z.B. weil 
AT91C_US_RXRDY nach jedem empfangenen Byte explizit zurückgesetzt werden 
müßte?

Autor: Christoph S. (mixer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

DMX heisst doch:

FE, 0, Byte1, Byte2, ...Byte512

Wenn der Frame Error und das Startbyte was immer 0 sein muss mitgezählt 
werden dann ergeben sich 514 Interrupts!

MFG Mixer

Autor: Henne (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so ist es.

Autor: Bernd Schuster (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
alles klar, danke für die aufklärung!

Gruß
Bernd

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.