Digital-Ghost
24.12.2012, 13:33
Hallo und frohe Weihnachten :p
ich sitze jetzt bestimmt schon 2 Stunden vor dem Problem einen Vergleich durchzuführen ohne Erfolg.
Und zwar habe ich auf dieser Seite http://www.dieelektronikerseite.de/uC%20Ecke/Lections/AVR-ASM/Flags%20-%20Der%20AVR%20gibt%20Flagsignale.htm diesen Beispielcode gefunden:
.include "m8def.inc"
Start:
ldi r16,0xFF
out DDRD,r16
ldi r16,127 ; Lade r16 mit 127
cpi r16,127 ; Vergleiche r16 mit 127
breq LED_on ; Wenn Werte gleich, springe
LED_off:
ldi r16,0b00000000
out PORTD,r16
rjmp Start
LED_on:
ldi r16,0b00000001
out PORTD,r16
rjmp Start
Dieser sollte ja rein theoretisch zu "LED_on" springen, da die zu vergleichenden Werte bei cdi ja gleich sind und im SREG das ZFLAG auf 0 sein müsste aber dem ist nicht so.
Weder auf dem IC noch mit simulavr. Ich bin mit dem Debugger alles mal Schritt für Schritt durchgegangen und mir ist aufgefallem, dass (laut der oben genannten Seite) das 2 Bit von Rechts im SREG das ZFLAG ist. Dieses ist bei mir jedoch immer 1. Egal welche Vergleiche ich mit cdi durchführe..
Woran kann das liegen? Ich bin total verwirrt momentan vor allem da ich da gerade erst einsteige.
Gruß :Weihnacht
ich sitze jetzt bestimmt schon 2 Stunden vor dem Problem einen Vergleich durchzuführen ohne Erfolg.
Und zwar habe ich auf dieser Seite http://www.dieelektronikerseite.de/uC%20Ecke/Lections/AVR-ASM/Flags%20-%20Der%20AVR%20gibt%20Flagsignale.htm diesen Beispielcode gefunden:
.include "m8def.inc"
Start:
ldi r16,0xFF
out DDRD,r16
ldi r16,127 ; Lade r16 mit 127
cpi r16,127 ; Vergleiche r16 mit 127
breq LED_on ; Wenn Werte gleich, springe
LED_off:
ldi r16,0b00000000
out PORTD,r16
rjmp Start
LED_on:
ldi r16,0b00000001
out PORTD,r16
rjmp Start
Dieser sollte ja rein theoretisch zu "LED_on" springen, da die zu vergleichenden Werte bei cdi ja gleich sind und im SREG das ZFLAG auf 0 sein müsste aber dem ist nicht so.
Weder auf dem IC noch mit simulavr. Ich bin mit dem Debugger alles mal Schritt für Schritt durchgegangen und mir ist aufgefallem, dass (laut der oben genannten Seite) das 2 Bit von Rechts im SREG das ZFLAG ist. Dieses ist bei mir jedoch immer 1. Egal welche Vergleiche ich mit cdi durchführe..
Woran kann das liegen? Ich bin total verwirrt momentan vor allem da ich da gerade erst einsteige.
Gruß :Weihnacht