Gast
#269543
Ich arbeite mich gerade in die Programmierung des ATMega16 von Atmel
ein. Dazu habe ich ein Interrupt-gesteuertes Programm erstellt, welches
LED0 auf dem STK500 an(IRQ0) bzw. ausschaltet (IRQ1), realisiert über
die Taster SW2 und SW3. Klappt prima.
Anschließend wollte ich das gleiche mal per Polling durchführen. In der
Simulation gehts auch wunderbar, nur in Realitas nicht... Dort tut sich
gar nichts.
Kann mir jemand einen Tipp geben?
Bin noch blutiger Anfänger im Bereich uP.
Besten Dank
Die wesentlichen Codeteile (voller Quelltext siehe Anhang):
START: in akku, PIND; Status der Taster einlesen
;wenn Taster SW2 (Pin3) gedrueckt wurde, LED0 AUSschalten
ldi temp, 0b00000100;
cp akku, temp;
breq LED0_AUSschalten;
;wenn Taster SW3 (Pin4) gedrueckt wurde, LED0 ANschalten
ldi temp, 0b00001000;
cp akku, temp;
breq LED0_ANschalten;
rjmp START; Endlosschleife
;--- Sprunglogik ---
LED0_AUSschalten: rcall sub_LED0_AUSschalten;
rjmp START;
LED0_ANschalten: rcall sub_LED0_ANschalten;
rjmp START;
;---Eventhandler
sub_LED0_AUSschalten: sbi PORTB, 0;
ret;
sub_LED0_ANschalten: cbi PORTB, 0;
ret;