TMR0为8位宽,有一个可选的预分频器,用于通用意图,可用于守时和计数。
TMR1为16位宽,顺便一个可编程的预分频器和一个可选的低频时基振荡器,合适与CPP模块合作运用来完成输入捕扣或输出比较功用,也可于守时和计数。
TMR2为8位宽,顺便一个合作运用来完成PWM脉冲宽度调制信号的发生,只能用于守时。
TMR0用作守时器时,守时器时钟=体系时钟/4;
写TMR0时,会发生2个周期的的延时,假如不运用前置分频器,可通过设置
初值进行补偿。
例如 需求守时200个时钟周期时,TMR0 = 256 -200 + 2= 58
OPTION_REG:
bit5 T0CS:TMR0 Clock Source Select bit
1 = TransiTIon on T0CKI pin
0 = Internal instrucTIon cycle clock(CLKO)
bit 4 T0SE:TMR0 Source Edge Select bit
1 = Increment on high-to-low transiTIon on T0CKI pin
0 = Increment on low-to-high transition on T0CKI pin
bit 3 PSA:Prescaler Assignment bit
1 = Prescaler is assigned to the WDT
0 = Prescaler is assigned to the Timer0 module
bit2-0 PS2:PS0:Prescaler Rate Select bits
任何时候对TMR0寄存器进行一次写操作后,其计数功用将被制止2个指令周期。
给我们一个定见:假如想用TMR0完成准确的守时,一旦用了预分频器后就不要对TMR0做任何写操作。
留意:在中止服务程序中查询TMR0中止时,既要查询T0IE位,还要查询T0IF位。
来历;21ic