USART Interrupt löst nicht aus; warum ?

Gast #1661893
Lesenswert?

Guten Abend !

Kann mir jemand sagen, wo ich hier einen Fehler mache ? Der Interrupt 
wird nie ausgelöst. Ich arbeite mit einem Attiny2313. Die Hardware 
funktioniert, da ich ohne Interrupt Methode sowohl senden auch als 
empfangen kann.

1
#include <avr/io.h>
2
//#include <util/delay.h>
3
#include <avr/interrupt.h>
4
//#include <avr/signal.h>
5

6
#define BAUD 9600UL      // Baudrate bestimmen
7
#define UBRR_VAL ((F_CPU+BAUD*8)/(BAUD*16)-1)   // clever runden
8

9
volatile unsigned char receive_char;
10
void init_uart(void);
11

12
int main(void)
13
{
14

15
   init_uart();
16
 
17
  sei(); 
18

19

20
  while(1)
21
  {
22
  }
23
   
24
   /*while(1)
25
    {
26
    UDR = 'z';
27
    _delay_ms(1000);
28
    } */
29

30
}
31

32

33
/***UART initialisieren***/
34
void init_uart()
35
{
36
    UCSRB |= (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
37
    UCSRC |= (3<<UCSZ0); /*UART: 8 Datenbits; keine Parität; 1                    Stopbit => 8N1*/
38
    UBRRH = UBRR_VAL >> 8;
39
    UBRRL = UBRR_VAL;
40
}
41

42

43
ISR(USART_RXC_vect)
44
{
45
       receive_char = (UDR);
46
       UDR = receive_char; // gleich zurücksenden !
47
}

Danke !
Gast #1661901
Lesenswert?

Du solltest es nicht nur glauben, sondern es ist wirklich nur RX... 
vielen Dank ! Mein Gott ey.. und ich sitze hier die ganze Zeit und guck 
mir die Register Einstellungen usw. alles an....

Danke !!

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