Timer => Fehlermeldungen beim compilieren
Hello again,
ich habe im myavr Workpad folgenden Code geschrieben, der durch den Wertevergleich des Timers mit einem Register einen Port an und aus schalten soll.
Code:
main: ldi r16,lo8(RAMEND)
out SPL,r16
ldi r16,hi8(RAMEND)
out SPH,r16
ldi r16,0b00000101
out TCCR0,r16
ldi r16,0b11111111
out DDRC,r16
ldi r17,0b00000001
;Hier Init-Code eintragen.
;------------------------------------------------------------------------
mainloop: wdr
an:
cpi TCNT0,r16
BREQ weiter
rjmp an ;Hier den Quellcode eintragen.
weiter:
51 ldi r16,0b0000000
out PORTC,r16
ldi r16,0b11111111
aus:
59 cpi TCNT0,r17
BREQ weiterr
rjmp aus
weiterr:
rjmp mainloop
Dazu bekomme ich folgende Fehlermeldung:
Code:
Assembler Meldungen:
m8.asm:51 51: Fehler: number must be less than 32
51: Fehler: Zulässig sind nur Register oder Werte im Bereich: 0 to 31
51: Warnung: Der Ausdruck bzw. die Sprungmarke befindet sich möglicherweise außerhalb der 8-bit Zahlenbereiches.
m8.asm:59 59: Fehler: number must be less than 32
59: Fehler: Zulässig sind nur Register oder Werte im Bereich: 0 to 31
59: Warnung: Der Ausdruck bzw. die Sprungmarke befindet sich möglicherweise außerhalb der 8-bit Zahlenbereiches.
Kann mir da jemand sagen, was nicht stimmt?
Danke
Re: Timer => Fehlermeldungen beim compilieren
1. Schlag mal nach, wofür der Befehl cpi gut ist.
2. Schlag ausserdem nach welche Bereiche ein breq überspringen kann ....
als Referenz empfehle ich das Instruction Set
Zitat:
Zitat von Sprinters
Bist du sicher, daß der Assembler weiß, was du mit 0b... meinst? Das ist zumindest überaus unüblich. Nur einige gepatchte gcc verstehen das.
zumindest das AVR Studio erkennt es ohne Probleme (also der Assembler dort)