Ferdinand
09.06.2008, 22:57
Hallo
Ich möcht ein Programm schreiben das mit "Taster" "LED's" Ein und mit selber Taste Aus zu schalten ist.
Mein bis bisheriger versuch.
.include "m8def.inc"
;------------------------------------------------------
; Initialisierungen
;------------------------------------------------------
ldi r16, 0xFF ; lade Arbeitsregister r16 mit der Konstanten 0xFF
out DDRB, r16
ldi r16, 0x00
out DDRD, r16
ldi r19, 0x00 ; Lade register r19 mit der Konstanten 0x00
ldi r20, 0x00 ; Lade register r20 mit der Konstanten 0x00
ldi r17, 0x00 ; LED Wert
;------------------------------------------------------
; HAUPTSCHLEIFE
;------------------------------------------------------
Hauptschleife:
in r20, PIND ; an Port D anliegende Werte (Taster) nach r20 einlesen
cpse r20, r19 ; wen beide register gleich sind dan ueber springe den nechsten schrit
rjmp s ;Sprung nach s
rjmp Hauptschleife ;Sprung nach Hauptschleife
s:
eor r17, r20
out PORTB, r17
SprungXY1:
in r17, PIND ; an Port D anliegende Werte (Taster) nach r11 einlesen
cpse r20, r17 ; wen beide register gleich sind dan ueber springe den nechsten schrit
rjmp s2
rjmp Hauptschleife ;Sprung nach Hauptschleife
s2:
eor r20, r17
out PORTB, r20
rjmp Hauptschleife
;end
Ich weis nicht mehr weiter und habe noch keine Erfahrung in Assembler.
Ich Benutze ein STK500 und ein ATMega8.
Mit freundlichen Grüßen Ferdinand.
Ich möcht ein Programm schreiben das mit "Taster" "LED's" Ein und mit selber Taste Aus zu schalten ist.
Mein bis bisheriger versuch.
.include "m8def.inc"
;------------------------------------------------------
; Initialisierungen
;------------------------------------------------------
ldi r16, 0xFF ; lade Arbeitsregister r16 mit der Konstanten 0xFF
out DDRB, r16
ldi r16, 0x00
out DDRD, r16
ldi r19, 0x00 ; Lade register r19 mit der Konstanten 0x00
ldi r20, 0x00 ; Lade register r20 mit der Konstanten 0x00
ldi r17, 0x00 ; LED Wert
;------------------------------------------------------
; HAUPTSCHLEIFE
;------------------------------------------------------
Hauptschleife:
in r20, PIND ; an Port D anliegende Werte (Taster) nach r20 einlesen
cpse r20, r19 ; wen beide register gleich sind dan ueber springe den nechsten schrit
rjmp s ;Sprung nach s
rjmp Hauptschleife ;Sprung nach Hauptschleife
s:
eor r17, r20
out PORTB, r17
SprungXY1:
in r17, PIND ; an Port D anliegende Werte (Taster) nach r11 einlesen
cpse r20, r17 ; wen beide register gleich sind dan ueber springe den nechsten schrit
rjmp s2
rjmp Hauptschleife ;Sprung nach Hauptschleife
s2:
eor r20, r17
out PORTB, r20
rjmp Hauptschleife
;end
Ich weis nicht mehr weiter und habe noch keine Erfahrung in Assembler.
Ich Benutze ein STK500 und ein ATMega8.
Mit freundlichen Grüßen Ferdinand.