Gast
#178682
Hallo,
ich habe mit meiner UART_init-Routine compile-Probleme. Ich bekomme
unter avr-gcc (GCC) 3.4.1 folgende Meldung:
Assembling: uart.S
avr-gcc -c -mmcu=atmega128 -I. -x assembler-with-cpp
-Wa,-adhlns=uart.lst,-gstabs uart.S -o uart.o
uart.S: Assembler messages:
uart.S:88: Error: number must be less than 64
make.exe: *** [uart.o] Error 1
Der entsprechende Code ist:
; r25/r24
;void uart_init(u16 BaudRate)
.global uart_init
uart_init:
out UBRR0H, r25 // Das ist die Zeile 88
out UBRR0L, r24
ldi r25, (1 << RXCIE0) | (1<<RXEN0) | (1<<TXEN0)
out UCSR0B, r25
sei
ret
Aufrufen tue ich das im main.c mit "uart_init(UART_BAUD_SELECT_0);",
dabei hat UART_BAUD_SELECT_0 den Wert 7.
Was ist falsch dran? Wie kann ich es lösen (außer den UBRR0H Wert auf
default zu lassen)?