Hallo liebe Leute!
ich möchte sobald ein High-Pegel an INT0 meines AT90S8515 anliegt, einen
Interrupt auslösen, der dann über den UART 0xFF schickt, sobald der
Buffer frei ist.
Warum funktioniert das nicht?
1 | #include <avr/io.h>
|
2 | #include <inttypes.h>
|
3 | #include <avr/interrupt.h>
|
4 |
|
5 |
|
6 |
|
7 | ISR (INT0_vect)
|
8 | {
|
9 |
|
10 | while (!(UCSRA & (1<<UDRE))); // warten bis Senden moeglich
|
11 |
|
12 |
|
13 | UDR = 0xFF;
|
14 |
|
15 | }
|
16 |
|
17 | int main(void)
|
18 | {
|
19 |
|
20 | UCSRB |= (1<<TXEN); //Senden aktivieren
|
21 | UCSRC |= (1<<URSEL)|(1<<UCSZ0)|(1<<UCSZ1);
|
22 |
|
23 | UBRRH = 00; //Baudrate einstellen 9600 bei 8 MHz
|
24 | UBRRL = 51;
|
25 |
|
26 |
|
27 | sei(); //Interrupts zulassen
|
28 |
|
29 | while (1);
|
30 |
|
31 | return 0;
|
32 | }
|
Tastenentprellung ist noch nicht eingebaut, ist klar! Es sollte aber
trotzdem schon was ankommen, wenn ich mit einem Draht von Vcc auf den
Int0-PIN gehe....
Vielen Dank!