Jag försöker sätta upp några variablar och W-registret (Säger man så?) bråkar med mig.
Här är min kod.
Kod: Markera allt
;-----------------------------------
; TIMER 0 KOD
;-----------------------------------
processor pic16f88
include <p16f88.INC>
banksel INTCON ;
bcf INTCON, TMR0IE ;Slå av Timer Interrupt
; bcf INTCON, TMR0IF ;Clear Timer Flaggan
banksel OPTION_REG
bcf OPTION_REG, T0CS ;Använd processor klockan
bcf OPTION_REG, PSA ;Prescaler på TMR0, inte Watchdog
bcf OPTION_REG, PS2 ;Prescaler värde
bcf OPTION_REG, PS1 ;Prescaler värde
bcf OPTION_REG, PS0 ;Prescaler värde
banksel TMR0
cblock H'20'
s1time
s2time
lowTime
s1count
s2count
lowCount
endc
movlw d'3'
movwf s1time
movwf s2time
movlw d'33'
movwf lowTime
movlw d'0'
movlw s1time ; Här!!!
movwf s1count
movlw s2time
movwf s2count
movlw lowTime
movfw lowCount
main
btfss INTCON, TMR0IF ;Timer = overflow?
goto main ;Nix, stanna kvar
bcf INTCON, TMR0IF ;Rensa TMRO flaggan
decfsz s1count
goto main ;Börja om
end
Min fråga är, vart i hela friden kommer det talet ifrån?
Raden innan har jag bara lagt till för att "nolla" W-reg när jag upptäckte att det dök upp 32, och den nollar W-reg men instruktionen efter dyker det alltså upp 32.
Tacksam för tip.
MVH Peter F