bin_wolf01
15.01.2005, 16:52
](*,) Servus an alle, suche Hilfe bei der Einstellung der Baudrate bei einem ATMega88 mit einer externen Taktfrequenz von 20MHz.
Ich versuche mich gerade in Assembler, mit den anderen Programmiersprachen habe ich wenig Probleme. Mit Assembler versteht halt man mehr - denk ich mal.
Folgendes Problem:
ATMega88 auf STK500. Programmierung in Assembler mit AVR-Studio.
Die Baudrate wird beim ATMega88 über die beiden Register UBRR0H ($C5) und UBRRH0L ($C4) eingestellt. Mein Code dazu sieht wie folgt aus:
.include "m88def.inc"
.equ CLOCK = 20000000
.equ BAUD = 9600
.equ UBRRVAL = CLOCK/(BAUD*16)-1
; Baudrate einstellen
ldi r16, LOW(UBRRVAL)
out UBRR0L, r16
ldi r16, HIGH(UBRRVAL)
out UBRR0H, r16
Bei "out UBRR0L, r16" bekomme ich die Fehlermeldung "illegal argument type or count".
Die Lösung ist mit Sicherheit einfach, ich habe in der Doku und hier im Forum bis jetzt leider nichts gefunden.
Danke für Hilfe, Wolfram
Der Fairniss halber weise ich darauf hin, daß ich den gleichen Beitrag im mikrocontroller.net poste.
Ich versuche mich gerade in Assembler, mit den anderen Programmiersprachen habe ich wenig Probleme. Mit Assembler versteht halt man mehr - denk ich mal.
Folgendes Problem:
ATMega88 auf STK500. Programmierung in Assembler mit AVR-Studio.
Die Baudrate wird beim ATMega88 über die beiden Register UBRR0H ($C5) und UBRRH0L ($C4) eingestellt. Mein Code dazu sieht wie folgt aus:
.include "m88def.inc"
.equ CLOCK = 20000000
.equ BAUD = 9600
.equ UBRRVAL = CLOCK/(BAUD*16)-1
; Baudrate einstellen
ldi r16, LOW(UBRRVAL)
out UBRR0L, r16
ldi r16, HIGH(UBRRVAL)
out UBRR0H, r16
Bei "out UBRR0L, r16" bekomme ich die Fehlermeldung "illegal argument type or count".
Die Lösung ist mit Sicherheit einfach, ich habe in der Doku und hier im Forum bis jetzt leider nichts gefunden.
Danke für Hilfe, Wolfram
Der Fairniss halber weise ich darauf hin, daß ich den gleichen Beitrag im mikrocontroller.net poste.