Hallo,
hier müsste es so mit dem Stackpointer gehn oder?
Code:
.include "2313def.inc"
.def temp=r16
.def int_per_sec=r17
.start:
ldi temp,low(ramend)
out spl,temp
initTimer:
ldi temp,5 ;CPU-Takt/1024
out TCCR0,temp
ldi temp,2 ;aktivieren des Interrups bei einem
out TIMSK,temp ;Überlauf
ldi int_per_sec,46 ;Anzahl der Interrupts pro Sekunde
;12MHz: 12.000.000/1024=11718,75 --> Bei jedem 11718,75ten Takt
;wird ein Interrupt eingeworfen
;=>11718,75/256(wegen 8Bit TCNT)=45,78 (ca. 46 Interrupts pro Sek.)
sei ;Interrupts global erlauben
endlos: ;Endlosschleife
rjmp endlos
time: ;Aufruf bei jedem Interrupt
dec int_per_sec
brne zurueck ;nach 46 Interrupts (int_per_sec=0) wird
;nicht nach "zurueck" gesprungen
;irgendwas zur vollen sekunde
zurueck:
reti ;rücksprung in die Endlosschleife
Das mit dem Interruptvektoren hab ich allerdings nicht verstanden... Wie kann man die setzen??
Lesezeichen