
Zitat von
onion
..., ist das dann manchmal etwas schwierig. Und so 300 Seiten arbeitet man jetzt auch nicht so in ner Stunde mal eben durch.
Stimmt.
Mein Code funktioniert jetzt aber und ist denke ich auch ok so wie ich es gemacht habe.
Kommentierte Version:
Code:
;################
.NOLIST
.INCLUDE "m8def.inc"
.LIST
.EQU Taster1 = 2
.EQU LED1 = 5
.CSEG ;
.ORG 0 ;
RJMP main ; könntest Du in diesem Fall sogar weglassen
main:
LDI R16, (1<<LED1) ; GUT!
OUT DDRD, R16 ; GUT!
loop:
SBIC PIND,Taster1 ;Taster1 prüfen
RJMP led_on ;led_on wenn TasterPin=H
CBI PORTD,LED1 ;LED1 ausschalten wenn TasterPin=L
RJMP loop
led_on:
SBI PORTD,LED1 ;LED1 anschalten
RJMP loop
Du sagtest, Dein Taster schaltet PD2 bei Aktivierung auf Masse? Dann bekommst Du das, was ich in den Code kommentiert habe, es sei denn, die LED liegt zwischen Ausgangspin und Vcc (ich weiß nicht, wie Deine Hardware aussieht); dann wäre aber "led_on" falsch bezeichnet.
Viele Grüße und weiter viel Spaß mit Assembler!
Fred
Lesezeichen