So hat etwas gedauert, aber nun komme ich mit EOR halbwegs klar und habe mir da auch ein kleines Prog. zusammen gebastelt.
Im Simulator läuft es im Pollinboard ist es gestern auch mal gelaufen, nun habe ich die HEX heute noch mal übertragen aber es läuft nicht mehr.
Die Testtool.hex läuft, also liegt es am Prog. nur ist mir mal wieder nicht klar wieso. Da es ja im Simulator läuft.
Wenn der Taster betätigt wird, wird über EOR die LED ein geschaltet.Code:.include "m16def.inc" .def arbeitsregister = r16 .def Tastmerker = r17 .equ Timerwert = 65536 - 100 start: ldi arbeitsregister, 0b11100000 out DDRd, arbeitsregister cbi POrtd,pb6 cbi PORTD,PB7 taster: ;Auswahl ob Taster betätigt sbic PIND,PB2 rjmp reset sbis PIND,PB2 rjmp taster reset: ldi r16,0b00000001 eor r17, r16 cpi r17,0x01 brne lichtaus breq lichtan Schleife: ldi arbeitsregister, (1<<tov1) out TIFR, arbeitsregister Timer: ldi arbeitsregister, HIGH(Timerwert) out TCNT1H, arbeitsregister ldi arbeitsregister, LOW(Timerwert) out TCNT1L, arbeitsregister ldi arbeitsregister, (1<<CS12) out TCCR1B, arbeitsregister loop: in arbeitsregister, TIFR sbrs arbeitsregister, TOV1 rjmp loop rjmp taster lichtan: sbi portd,pb6 sbic pind,pb2 rjmp lichtan rjmp schleife lichtaus: cbi portd,pb6 sbic pind,pb2 rjmp lichtaus rjmp schleife
Ist der Taster wieder 0 springt das Prog in eine Timer Schleife und von dort wieder in die Tasterabfrage.
Wenn der Taster nun betätigt wird, folgt nun der gleiche Ablauf nur das über EOR die LED diesmal Aus statt Ein geschaltet wird.







Zitieren

Lesezeichen