29.6.2.5 记数器操作
记数器能被设置为向上或向下记数。当记数器向上记数并且顶值到达,记数器翻转到0继续下一个时
钟循环,记数器将翻转到顶值当到达0时。在one-shot模式时,记数器将停止记数在翻转发生时。
为了设置记数器向下记数,写一个1到控制B设置寄存器(CTRLBSET.DIR)的方向比特。为了设置向上
记数,写一个1到控制B清除寄存器(CTRLBCLR.DIR).
每次记数器到达顶值或到达0,它将设置在中断标志状态和清除寄存器(INTFLAG.OVF)中的溢出中断
标志。它也可能生产一个上溢或下溢事件,当事件控制寄存器上溢/下溢事件输出使能比特是1
(EVCTRL.OVFEO)。
记数值能被从记数值寄存器(COUNT)中读出或者一个新值能被写入到COUNT寄存器,见下图所示。给
出了一个写新记数值的例子。COUNT值当TC开始时将总是变成零,除非一些别的值被写入或 TC被事先重载入
顶值,因此TC一记数时就停止。
停止命令
关于停止命令,它能在控制B设置寄存器(CTRLBSET.CMD)命令比特组中唤醒,记数器将保持它的当前
值。所有的波形全清除。记数器停止记数,并且状态寄存器的停止比特被设置(STATUS.STOP)。
触发命令和事件激活
触发能被唤起或者是软件命令,用在控制B设置寄存器(CTRLBSET.CMD)中的触发命令,或者作为一个
触发事件激活,用在事件控制寄存器中的事件激活比特组(EVCTRL.EVACT)。
当一个触发在记数器运行时被唤醒,记数器将翻转到顶值或0值,依据记数器的方向。
当一个触发在记数器停止期间被唤醒,记数器将继续从COUNT寄存器的值记数。
注意:
当触发事件激活被配置并且使能事件激活,使能的记数器将不开始记数。记数器将在下一个进入的
事件开始并且重开始在任何紧随事件。
记数事件激活
当记数事件激活被配置,每个新进入事件将使记数器增加或减少,依据方向位的状态
(CTRLBSET.DIR)。
开始事件激活
当TC被配置为一个开始事件激活,在EVCTRL.EVACT比特组,使能TC不能使记数器开始;开始被延期直到下一个输入事件或软件触发激活。当记数器正在运行时,一个输入事件对记数器没有影响。
|