USART_RXC interrupt Problem

OP #2910748
Lesenswert?
• ▲
▼
Hallo,

Ich wollte mal das UART Empfangsinterrupt testen. Mit dem folgenden 
Programm sollte eine LED an Port C 0 leuchten, wenn ein Zeichen 
empfangen wird, doch dies funktioniert nicht. Kann mir jemand helfen?
1
#include <avr/io.h>
2
#include <avr/interrupt.h>
3

4
void uart_init(void)
5
{
6
  UBRRH = UBRR_VAL >> 8;
7
  UBRRL = UBRR_VAL & 0xFF;
8
 
9
  UCSRB |= (1<<RXEN);  // UART RX einschalten
10
  UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);  // Asynchron 8N1 
11
}
12

13
int main(void)
14
{
15
  uart_init();
16
  
17
  // PC0=Ausgang
18
  DDRC |= (1 << DDC0);
19
  PORTC |= (1<<PC0); // LED ausschalten
20
  sei(); //Interrupts aktivieren
21
  while (1)
22
  {
23
  }
24
}
25

26
ISR(USART_RXC_vect)
27
{
28
       PORTC &= ~(1<<PC0); //LED einschalten
29
}

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.