Hallo,
ich hatte vorher einen ATmega16 verwendet, habe ihn nun durch einen
ATmega644PV 10PU ausgetauscht.
Die UART Programmierung habe ich wie folgt angepasst, da der ATmega16
nur einen, der ATmega644 2 UARTs besitzt:
1 | void init_USART(void)
|
2 | {
|
3 | // USART Einstellungen: 115200 Baud, U2X=1, Quarz: 14,7456 MHz
|
4 | UCSRA = (1<<U2X);
|
5 | UCSRB = (1<<TXEN) | (1<<RXEN);
|
6 | UCSRC = (1<<URSEL) | (1<<UCSZ1) | (1<<UCSZ0);
|
7 | UBRRH = 0;
|
8 | UBRRL = 15;
|
9 | }
|
10 |
|
11 | void char_USART(char c)
|
12 | {
|
13 | if(c=='\n') char_USART('\r');
|
14 | while((UCSRA&(1<<UDRE))==0);
|
15 | UDR = c;
|
16 | }
|
=>
1 | void init_USART(void)
|
2 | {
|
3 | // USART Einstellungen: 115200 Baud, U2X=1, Quarz: 14,7456 MHz
|
4 | UCSR0A = (1<<U2X0);
|
5 | UCSR0B = (1<<TXEN0) | (1<<RXEN0);
|
6 | UCSR0C = (1<<UCSZ01) | (1<<UCSZ00);
|
7 | UBRR0H = 0;
|
8 | UBRR0L = 15;
|
9 | }
|
10 |
|
11 |
|
12 |
|
13 | void char_USART(char c)
|
14 | {
|
15 | if(c=='\n') char_USART('\r');
|
16 | while((UCSR0A&(1<<UDRE0))==0);
|
17 | UDR0 = c;
|
18 | }
|
Im AVR Studio habe ich ATmega16 durch ATmega644 getauscht. Ich hatte es
auch mal mit ATmega644P versucht, ging aber auch nicht.
Beim Debuggen sehe ich folgendes:
Wenn ich im HyperTerminal einen Buchstaben eingebe, passiert schon
nichts.
Ich weiß nicht woran es liegen könnte, da vorher doch alles geklappt
hat.