Forum: Mikrocontroller und Digitale Elektronik USART Interrupt löst nicht aus; warum ?


von MC_AVR (Gast)


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 !

von Carsten (Gast)


Lesenswert?

Hallo,

ich glaube für den Tiny2313 heisst der Interruptvektor "USART_RX_vect" - 
also ohne "C".



Carsten

von MC_AVR (Gast)


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 !!

von Michael M. (Gast)


Lesenswert?

compilerwarnings lesen hätte gereicht...

von MC_AVR (Gast)


Lesenswert?

Mein Compiler hat keine Warnung bezüglich dies gemeldet?!

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.