Forum: Mikrocontroller und Digitale Elektronik USART_RXC interrupt Problem


von Florian S. (didi34)


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
}

von Spess53 (Gast)


Lesenswert?

Hi

>Kann mir jemand helfen?

RXIE-Bit fehlt.

MfG spess

von Florian S. (didi34)


Lesenswert?

Ach ja. Vielen Dank!!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.