Hallo Leute ich arbeite gerade mit einem Atmega 162.
Ich habe bis jetzt mit USART0 gearbeitet. Das funktioniert alles.
Jetzt wollte ich aber auch den zweiten aktivieren doch immer wenn ich
die Konfigurationsroutine ins Programm aufnehme hängt sich das Programm
sofort auf. und es kommt auch nichts mehr von USART0.
1 | //USART initialisieren
|
2 |
|
3 | //USART0
|
4 | UBRR0H = UBRR_VAL >> 8;
|
5 | UBRR0L = UBRR_VAL & 0xFF;
|
6 | //USART1
|
7 | UBRR1H = UBRR_VAL >> 8;
|
8 | UBRR1L = UBRR_VAL & 0xFF;
|
9 | //USART0
|
10 | UCSR0B |= (1<<TXEN0); // UART TX einschalten
|
11 | UCSR0B |= (1<<RXEN0);
|
12 | UCSR0B |= (1<<RXCIE0);
|
13 | UCSR0C |= (1<<URSEL0)|(1<<UCSZ00)| (1<<UCSZ01); // Asynchron 8N1
|
14 |
|
15 | //USART1 wenn ich das einkommentiere geht kein UART mehr.
|
16 |
|
17 | UCSR1B |= (1<<TXEN1); // UART TX einschalten
|
18 | UCSR1B |= (1<<RXEN1);
|
19 | UCSR1B |= (1<<RXCIE1);
|
20 | UCSR1C |= (1<<URSEL1)|(1<<UCSZ10)| (1<<UCSZ11); // Asynchron 8N1
|
21 |
|
22 | sei();
|
Wenn ich die zeilen unter USART1 lösche, dann funktioniert der Rest wie
er soll