Hi,
ich versuche interruptgesteuert Daten über die BEIDEN USARTs des
ATMega644p einzulesen.
Zunächst einmal wollte ich einfach nur den UART0 so initialiesieren,
dass beim Eintreffen von Daten an diesem ein Interrupt ausgelöst wird
und (zum Zeichen dass es funktioniert) eine LED getoggelt wird.
Hier der code:
1 | #include <avr/io.h>
|
2 | #include <avr/interrupt.h>
|
3 |
|
4 | void main(void)
|
5 | {
|
6 | DDRA = 0xFF;
|
7 | UBRR0 = 103; // 9600 Baud bei 16000000Hz
|
8 | // Transmitter und Receiver Enable
|
9 | UCSR0B = (1<<RXCIE0) | (1<<RXEN0) | (1<<TXEN0);
|
10 | UCSR0C = (1<<USBS0)|(1<<UCSZ00);
|
11 | sei();
|
12 | while(1)
|
13 | {
|
14 | }
|
15 | }
|
16 |
|
17 |
|
18 | // UART RX complete interrupt
|
19 | ISR(USART0_RX_vect)
|
20 | {
|
21 | PORTA ^= ( 1 << PA0 ); // Toggle LED
|
22 | }
|
Hat jemand einen Tip was ich falsch mache?