www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interruptproblem beim DUART SCC2692 von Philips


Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wer kennt den DoppelUART (siehe Betreff) und vielleicht auch seine
Tücken?

Wenn ich im IMR-Register nur eine Freigabe für den TxRDYA-Interrupt
erteile, dann funktioniert der Senden-Interrupt.

Wenn ich im IMR-Register nur eine Freigabe für den
RxDY/FFULLA-Interrupt erteile, dann funktioniert der
Empfangen-Interrupt.

Beim Auslesen des Statusregisters ISR wird auch das entsprechende Flag
gesetzt.

Wenn ich beide Interrupts für den Empfang und das Senden freigebe, dann
wird kein Empfangen-Interrupt mehr ausgelöst. Es funktioniert nur noch
der Senden-Interrupt.

Initialisierung:

WriteByte(0, ADDR_DUART_MR1A, 0x13); // 8 data,no parity
WriteByte(0, ADDR_DUART_MR2A, 0x07); // 1 stop
WriteByte(0, ADDR_DUART_CSRA, 0xBB); // 9600 Baud fuer
Transmitter+Receiver
WriteByte(0, ADDR_DUART_ACR,  0x00); // choose set 1 for baud rates
WriteByte(0, ADDR_DUART_CRA,  0x05); // switch receiver and transmitter
on
WriteByte(0, ADDR_DUART_IMR,  0x03);   // Transmit+Receive Interrupt
DUART A enable


Handler:
void DUART_TX_READY_INT() interrupt 0x19
{
  char status;
  status = ReadByte(0,ADDR_DUART_ISR);

  // Kommt der Interrupt vom Empfang?
  if (status & 0x02)
  {
    UART_A_RX_BYTE;
    LEDERR ^= 1;
  }

  if (status & 0x01)
  {

    if (bytecounter < TlgLen )
    {
      UART_A_TX_BYTE(TransmitBuf[bytecounter++]);
    }
    else
    {
      TX_BUSY = 0;
    }
  }
}


Wer weiss Rat?

Grüße
Oliver

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.