-
-
So, hab jetzt mal was ausprobiert. Die LED am PortB soll mit dem Taster an und ausgeschalten werden. Eigentlich müsste es, denke ich, so gehen , oder ?
Kann es sein, dass das so nicht ohne Timer geht ?
Bin für alle anregungen dankbar !!
mfg
CODE:
; Start, Power ON, Reset
main: ldi r16,lo8(RAMEND)
out SPL,r16
ldi r16,hi8(RAMEND)
out SPH,r16
; Hier Init-Code eintragen.
; Port Init:------------------------------------------------
ldi r16,0x00
out DDRD,r16 ;PortD als Eingang
ldi r16,0xff
out DDRB,r16 ;PortB als Ausgang
out PORTD,r16 ;Pullups von PortD
ldi r19,0b00000000 ;Statusbyte mit 0 initialisieren (zur Wartung binaer)
;----------------------------------------------------------------------
; Hauptprogramm
mainloop:
sbis PIND,2 ;PORTD.2 cleared ?
nop
nop
nop
nop
rcall testnset ;nein ! dann springe zu testnset
rjmp mainloop ;ja ! dann wieder von vorne (mainloop)
;----------------------------------------------------------------------
testnset: sbrc r19,7 ;MSB (b7) in r19 cleared ?
rcall setsbit ;nein ! dann springe zu setsbit !
rcall clearsbit ;ja ! dann springe zu clearsbit
rjmp mainloop
setsbit: sbi PORTB,0 ;setzte LED an !
sbr r19,7 ;setze statusbit in r19
rjmp mainloop ; und wieder ab in die hauptschleife
clearsbit: cbi PORTB,0 ;clear LED !
cbr r19,7 ;statusbit wieder aus
rjmp mainloop ;ebenfalls wieder in die hauptschleife
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen