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

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