Vad är det för fel?
Måste jag göra något mer än att ladda TCNT1 med noll?
Kod: Markera allt
;===========================================================================================
; AVBROTTSRUTIN EXT_INT0 - Avbrottsrutin INT0, Inträffar en gång per varv på trumman
;===========================================================================================
Varv_INT0:
INTERRUPT ;Börja avbrottsrutinen med MACRO INTERRUPT
sbrc flagga, 2 ;Kolla om flagga3 är nollställd...
rjmp INT0_slut ;...om inte så har Timer1 slagit runt och ingen uppdatering...
;...av tid ska göras
ldsw Z, Tid_nu ;Lägg Tid_nu(som vid detta tillfälle är förra tiden)...
stsw Tid_nyss, Z ;...i Tid_nyss
ldsw Z, TCNT1 ;Spara aktuellt varvs tid i Z och...
stsw Tid_nu, Z ;...ladda Tid_nu med Z
sbr flagga, 0b00000001 ;Flagga1 för att tala om att ny tid finns för beräkning
INT0_slut:
clr ZL ;Nollställ Z...
clr ZH
sts TCNT1L, ZL ;...och flytta till TCNT1 för att nollställa Timer1
sts TCNT1H, ZH
cbr flagga, 0b00000100
INTERRUPT_END ;Avsluta avbrottsrutinen med MACRO INTERRUPT_END