Hardware Reference
In-Depth Information
; activate Timer0 as basic 5 ms ticker
movlw B'11000111'
movwf T0CON ;timer enabled, 8 bit, internal clock, 1:256 prescaler
bcf INTCON,TMR0IF
bcf INTCON2,TMR0IP ;low priority interrupt
movlw .60
movwf TMR0L
;preset timer to overflow after 196 counts
bsf
INTCON,TMR0IE ;enable timer overflow interrupt
In der Interrupt Service Routine wird ein Zähler (timerIndicator) dekrementiert,
der mit der Verzögerungszeit von ca. 0.5 s geladen wird, wenn die LED eingeschaltet
wird.
USBTMCindicator_pulse
call
IndicateINDICATORon
movlw
.100
movwf
timerIndicator ;count down in 0.5s
return
IndicateINDICATORon
movff
PORTD,WREG
iorlw
B'00000010'
movwf
LATD
movwf
PORTD
return
Wenn der Zählerstand null ist, wird die Indikator-LED abgeschaltet.
; timer0 interrupt
movlw .60
movwf TMR0L ;preset timer to overflow after 196 counts
btfss PORTD,1
bra timer0_ex ;indicator LED is off
movlw 0x00
cpfseq timerIndicator
bra
decIndicator
call
IndicateINDICATORoff
bra
timer0_ex
decIndicator
decf
timerIndicator
timer0_ex
bcf
INTCON,TMR0IF
LowInt_ex
...
IndicateINDICATORoff
movff PORTD,WREG
andlw B'11111101'
movwf LATD
movwf PORTD
return
Search WWH ::




Custom Search