R8C13 UART1 Interrupt wird nur einmal aufgerufen

OP #2166334
Lesenswert?
• ▲
▼
Zur Zeit versuche ich mich etwas mit dem R8C/13 und einigen Interrupts 
anzufreunden, jedoch möchte das nicht so gut klappen.

Ich habe schon mehrere Tage hier und bei Google gesucht, aber mir ist 
keine mögliche Fehlerursache in meinem Code aufgefallen.


Zu meinem Projekt:

Es besteht lediglich aus einem Timer Interrupt der alle 0,5 Sekunden 
eine LED an und ausschaltet, und einem UART1 Receive Interrupt der ein 
'OK' sendet wenn etwas empfangen wurde.

Der Timer Interrupt mit dem LED blinken läuft einwandfrei.
Der UART1 Receive Interrupt wird jedoch nur ein einziges Mal, 
ausgeführt.

Beide Interrupts wurden korrekt in die Vector Tabelle eingetragen.

Der Code befindet sich im Anhang.


Hat jemand eine Idee?


Danke schoneinmal.
Angehängte Dateien:
Gast #2166493
Lesenswert?
• ▲
▼
> Der UART1 Receive Interrupt wird jedoch nur ein einziges Mal,
> ausgeführt.

Ich bin zu faul fuer dich das Datenblatt zu lesen, aber normalerweise 
deutet soetwas darauf hin das du irgend ein IRQ-Bit nicht zurueckgesetzt 
hast.

Olaf
Gast #2166648
Lesenswert?
• ▲
▼
Hallo Sven,

zusätzlich zu dem Kommentar von Olaf sind mir beim kurzen drüberschauen
über deinen Source Code foldende Dinge aufgefallen.

1. Eine while Schleife in einer ISR ist immer eine schlechte Idee.
Setze eine variable (volatile!) in serial_receive_int() und prüfe diese 
in Main um von dort send_serial_1('O') aufzurufen.

2. Laut deinen Kommentaren hast du auch einen UART1 Transmit Interrupt.
Eine passende ISR sollte auch in der Vektortabelle auftauchen...
Gast #2167648
Lesenswert?
• ▲
▼
Hallo,
schalt' mal das Empfangen in deiner Interrupt Routine wieder ein so in 
etwa:
re_u1c1 = 1;
Wenn das funktioniert, dann nimm Dir bitte Deine Initialisierungsroutine 
nochmal vor(Interrupt Priorität usw.)

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.