Hallo
Ich will auf einem ATmega32 eine UART/RS232 Verbindung einrichten. Ich
nutze die Lib von P. Fleury
Soweit alles schön und gut. Kann wunderbar Zeichen empfangen und auch
Senden. Allerdings will ich jetzt mit einem Interrupt arbeiten.
Ich will erstmal erreichen, dass mir mein Mega32 beim Receive Complete
Interrupt, also dann wenn er ein neues Byte im Buffer hat, in eine ISR
springt.
Folgendes haben ich bisher gemacht:
1 | int main(void)
|
2 | {
|
3 | ...
|
4 | sei();
|
5 |
|
6 | UCSRB |= (1<<RXCIE); // Activate UART receive complete interrupt
|
7 |
|
8 |
|
9 | ...
|
10 |
|
11 | return 0;
|
12 | }
|
13 |
|
14 |
|
15 | ISR(UART0_RECEIVE_INTERRUPT)
|
16 | {
|
17 | set_leds(LED_RECEIVING,LED_ON);
|
18 | _delay_ms(1000);
|
19 | }
|
20 |
|
21 | [c]
|
22 |
|
23 | Das Synonym "UART0_RECEIVE_INTERRUPT" ist in der uart.c von Fleury zu finden:
|
24 |
|
25 | [c]
|
26 | #define UART0_RECEIVE_INTERRUPT SIG_UART_RECV
|
Es ist also ein Synonym für den Interruptvector in der Mega32
Headerdatei.
So, egal was ich nun dem AVR schicke, der geht partou nicht in diese ISR
rein. Woran kann das liegen?