|
发表于 2009-1-4 21:17:57
|
显示全部楼层
MOVWF W_TEMP ;保护现场
SWAPF STATUS, W
MOVWF S_TEMP
CLRF STATUS
BTFSS PIR1, TMR1IF ;判断是否是TMR1中断
GOTO OTH_INT ;不是则转而判断其他中断
BSF STATUS, RP0
BTFSS PIE1, TMR1IE ;同上
GOTO OTH_INT
BCF STATUS, RP0
MOVLW 0xCD
MOVWF TMR1L ;这一条语句重装载TMR1L的初值
DECF TMR1H
.
.
.
------------------------------------
上面是能最快重新装载TMR1L的写法,CPU响应中断至少2周期,进入中断服务程序后要12周期后才能重新装载TMR1L的值,而0xCD(16)=-51(10),那么当内置振荡器准确的时候,TMR1的溢出周期也至少是51+2+12=65(μs),振荡器再不校准使得频率偏一点,很容易就接近100μs了。 |
|