计数和定时
BasicTimer支持8位或16位向上计数模式。当计数值大于等于比较寄存器(CMPH、CMPL),会产生计数中断标志,并从自动重载寄存器(LOADH、LOADL)加载新的比较值。这样可以实时调整每个计数周期的计数长度。
⚫ 8/16bit upcounter
⚫ 上升沿或下降沿计数
⚫ 计数初值和终值可配置
⚫ 计数值大于等于比较值时触发中断
⚫ 计数达到比较值后自动重载
⚫ 计数周期中可以通过改写重载寄存器修改下一周期长度
16bit级联计数模式
16bit计数值等于16bit比较寄存器时,比较中断状态寄存器只有CMPHIF置起。下图的参考波形中,CHTHSEL=00/11表示级联模式;LOADL和LOADH为比较值加载寄存器;LLEN和LHEN是加载使能寄存器,16位级联计数模式下软件对LHEN写1将使BasicTimer自动加载比较值和计数器预设值,随后自动启动计数;CMPH和CMPL为高低位比较寄存器;CLEN和CHEN是计数器使能信号;CNTL和CNTH是两组8bit计数器;COMPHIF和COMPHIF为高低计数器比较中断标志位;OVHIF和OVLIF为高低计数器溢出标志位。
当16bit级联计数器的计数值等于比较寄存器{CMPH,CMPL}时,CMPHIF中断标志置位,同时计数器自动归零,重新开始计数。
在计数器启动后,软件可以通过改写LOADL和LOADH寄存器动态调整下一个计数周期使用的比较值;当计数值匹配比较值,并重启计数器时,Basic Timer也会同时重新从LOAD寄存器加载比较值,这样下一个计数周期的长度也就相应的改变了。
8bit独立计数模式
8bit独立计数模式下,每个8bit计数器独立工作,波形示意图如下。