guten abend,
wieder ein timer problem das ich nicht verstehe.
das programm funktioniert einmal nachdem es mit dem mkII downgeloadet wurde, beim zweitem druecken der taste
bleibt die led einfach brennen. hat jemand eine idee?
zum testen im simulator habe ich cs02=0 und cs00=1 gesetzt und auch hier haut's hin. bei cnt=70 bekomme ich ca
15 sec -> 0,83 X10-6 s x 1024 x 25 x 70 auch ca 15 sec.
aber mit vorteiler 1020 funktioniert das programm nur einmal korrekt.
schickt man das programm noch mal zum baustein funktioniert wieder einmal ???
die ratschlaege von old-max kann ich leider momentan noch nicht umsetzen, werde sie aber im hinterkopf behalten.
wieder ein timer problem das ich nicht verstehe.
das programm funktioniert einmal nachdem es mit dem mkII downgeloadet wurde, beim zweitem druecken der taste
bleibt die led einfach brennen. hat jemand eine idee?
zum testen im simulator habe ich cs02=0 und cs00=1 gesetzt und auch hier haut's hin. bei cnt=70 bekomme ich ca
15 sec -> 0,83 X10-6 s x 1024 x 25 x 70 auch ca 15 sec.
aber mit vorteiler 1020 funktioniert das programm nur einmal korrekt.
schickt man das programm noch mal zum baustein funktioniert wieder einmal ???
die ratschlaege von old-max kann ich leider momentan noch nicht umsetzen, werde sie aber im hinterkopf behalten.
Code:
; zeitrelais mit timer0 interrupt, taster an pb0 soll ausgang
; pb4 fuer 30 sec setzen.
.include "tn13def.inc"
.def rmp=r16 ;multipurpose
.def cnt=r18
; reset und isr vektoren
rjmp init ; resetvektor
reti
reti
rjmp timer_isr ; timeroverflow
reti
reti
reti
reti
reti
reti
;
init:
ldi rmp,low(ramend) ; init stapel
out spl,rmp
ldi cnt,3 ; zaehlersetzen
cbi ddrb,0 ; portb,0 eingang
sbi portb,0 ; pullup
sbi ddrb,4 ; portb,4 ausgang
ldi rmp,1<<toie0 ; enable overflow isr
out timsk0,rmp
sei ; enable isr
loop:
sbic pinb,0 ; ueberspringe naechste zeile wenn pinb,0 =1
rjmp loop
sbi portb,4 ; ausgang pb4 setzen
ldi rmp,(0<<cs02)|(1<<cs00) ; timer starten, fuer simu cs02=0
out tccr0b,rmp
; cpi cnt,0 ; abfrage ob zaehlregister=0
; breq end
loop1:
rjmp loop1
timer_isr:
nop
dec cnt
cpi cnt,0
breq end
reti
end:
nop
cbi portb,4 ; portb,4 aus
rjmp loop