Gast
#1014572
ich bin ein anfänger in sachen mikrocontroller und asm, ich würde gerne bei dem drücken von taster eins die led1 einschalten, und durch erneutes drücken des tasters die led wieder ausschalten. das einschalten funktioniert, doch das ausschalten nicht.. das problem liegt am SBIS befehl, der scheint irgendwie nich zu funktionieren, weis sjemand wieso? hier mein source: Ich habe auf meinem board ein ATMEGA8515L .include "8515def.inc" ldi r16, 0xFF out DDRB, r16 ; Port B ist Ausgang ldi r16, 0x00 out DDRD, r16 ; Port D ist Eingang ldi r16, 0xFF out PORTB, r16 ; PORTB auf 0xFF setzen -> alle LEDs aus loop: sbic PIND, 0 ; "skip if bit cleared", nächsten Befehl überspringen, ; wenn Bit 0 im IO-Register PIND =0 (Taste 0 gedrückt) rjmp loop ; Sprung zu "loop:" -> Endlosschleife cbi PORTB, 0 ; Bit 0 im IO-Register PORTB auf 0 setzen -> 1. LED an loop3: sbis PIND, 0 ;warten bis taster losgelassen wird. rjmp loop3 loop2: sbic PIND, 0 ;warten bis taster erneut gedrückt wird rjmp loop2 out PORTB, r16 ; leds ausschalten ende: rjmp loop ; zurück zum loop sorry, falls die formatierung nicht so gut is