
感觉
技术
2.3定时器/看门狗& Prescler
2.3.1
Timer0
FM8P54/56
定时器0是一个8位定时器/计数器。定时器0的时钟源可以来自内部时钟或外部
时钟源( T0CKI引脚) 。
2.3.1.1 Timer0使用内部时钟:定时模式
定时器模式通过清零T0CS位( OPTION<5> ) 。在定时器模式下,Timer0寄存器( TMR0 )会
每个指令周期递增(不带预分频器) 。如果对TMR0寄存器执行写操作时,禁止递增的
以下两个周期。
2.3.1.2 Timer0使用外部时钟:计数器模式
计数器模式通过将T0CS位( OPTON<5> ) 。在这种模式下,Timer0递增无论是在每
上升或下降的销T0CKl的边缘。递增边沿由源边沿选择位T0SE
(OPTION<4>).
外部时钟要求是由于内部相位时钟( TOSC)同步。此外,还有在一个延迟
同步后Timer0的实际递增。
当不使用预分频器时,外部时钟输入相同的预分频器的输出。同步
T0CKI与内部相位时钟被采样预分频器输出上的T2和T4周期完成
内部相位时钟。因此,有必要T0CKI为高至少2个T
OSC
低至少2
TOSC。
当使用预分频器时,外部时钟输入被异步预分频器分频。对于外部时钟
以满足采样要求,纹波计数器必须被考虑在内。因此,有必要对
T0CKI有一个为期至少4个Tosc通过预分频值的。
2.3.2看门狗定时器(WDT )
看门狗定时器( WDT)是自由运行的片上RC振荡器,它不需要任何外部元件。
所以,即使在OSCI和OSCO引脚的时钟被关闭,如在睡眠模式下, WDT仍将运行。中
正常运行或处于休眠模式时,WDT超时会导致设备重置和TO位( STATUS<4> )会
被清除。
该WDT可以通过清除控制位WDTE ( PCON<7> )为“0”被禁用。
该WDT为18 ms (无预分频器)标称超时周期。如果需要更长的超时时间是需要的,一个
预分频高达1的分频比: 128可以被分配到由OPTION寄存器控制WDT 。因此,
最长的超时时间约可达到2.3秒。
CLRWDT指令将清零WDT和预分频器,如果分配给WDT ,并阻止它超时
和产生器件复位。
SLEEP指令将复位WDT和预分频器,如果分配给WDT 。这给出了最大睡眠
一个WDT唤醒复位之前的时间。
2.3.3预分频器
一个8位计数器(向下计数)可作为预分频器,定时器0 ,或作为一个分频器,看门狗定时器
( WDT ) 。请注意,预分频器可以由Timer0模块或WDT ,但不能同时使用。因此,一个
预分频器分配给Timer0意味着没有预分频器WDT ,反之亦然。
PSA位( OPTION<3> )决定预分频器的分配。该PS<2 : 0>位( OPTION<2 : 0> )确定
预分频比。
当预分频器分配给Timer0模块,写入TMR0寄存器的指令将清零
预分频器。当它被分配给WDT时, CLRWDT指令将清零预分频器和WDT 。
预分频器是不可读写。复位时,预分频器包含全1 。
为了避免意外的器件复位, CLRWDT或CLRR TMR0指令必须改变的时候被执行
从Timer0预分频器分配给WDT ,反之亦然。
2005年Rev1.21 5月31日,
P.17/FM8P54/56