30.6.2.4 记数器操作
依靠操作模式,记数器清除,重载,增加,减少在每个TCC时钟周期(CLK_TCC_CNT).一个记数器的清除
和重载标明当前同记数周期的结束和一个新的周期的开始。
记数器将在方向比特设定记数方向上记数,直到它达到顶点或零值。当向上记数达到顶值时一个清除
的操作发生,记数器将清零在下一个时钟周期。在向下记数时当达到零时重载发生,记数器的值重载为周期
寄存器(PER)值。
记数器的值连续同周期(PER)和零值比较,来检测是否记数器的值到了顶值或者零值。依据这个比较,
溢出中断标志在中断标志状态和清除寄存器(INTFLAG.OVF)被设置,无论在记数值到达顶值或零值。这可以用
在触发一个中断,一个DMA请求,或一个事件。如果控制B设置寄存器One-Shot比特被设置,比较匹配
(TOP/ZERO)将停止记数操作。
向上记数使能是通过向控制B寄存器的方向比特(CTRLBCLR.DIR)写1。向下记数使能是通过向控制B设置
寄存器的方向比特(CTRLBSET.DIR)写一个1实现的。
如上图所示,可以改变记数值(通过向记数寄存器直接写)甚至当记数器运行期间。写访问比记数,
清除,重载有高优先级。记数的方向也能在正常操作期间被改变。由于时钟域的异步,内部记数器设置被写
是当同步完成之后。
通常操作必须被用当用记数器作为捕获通道的定时基础。
停止命令和事件行为
一个停止命令能被执行从软件上通过控制B设置寄存器的TCC命令比特组(CTRLBSET.CMD=STOP)来实现或者当停止事件发生,通过事件控制寄存器中的输入事件1行为比特(EVCTRL.EVACT1=STOP).
当记数器正在运行时一个停止被检测到,记数器将保存它的当前值。如果波形发生(WG)使用,所有的波形都设置到在非可恢复状态的输出使能位和非可恢复状态的输出使能值的定义(DRVCTRL.NRE DRVCTRL.NRV)。并且状态寄存器中的停止位被设置(STATUS.STOP).
|