在嵌入式系统中,定时器(Timer)是一个非常重要的外设模块。它不仅用于实现精确的延时,还常常用来生成脉宽调制(PWM)信号、捕捉外部事件以及执行周期性任务。
上一篇帖子介绍了 AVR 定时器 TCA 模式介绍, 这篇帖子我们以AVR® 微控制器为例,介绍另一种常见的定时器工作方式:
定时器(TCD)
TCD 是一款 12 位定时器,针对生成复杂的 PWM 波形(如半桥和全桥输出)进行了优化。存在于tinyAVR 1 系列和 AVR DA 系列等设备中。
图 1 - TCD 定时器功能框图
TCD 内部有两个比较器:CMPA 和 CMPB。每个比较器都有一个置位(SET)值和一个清零(CLR)值。当定时器的值达到置位值时,输出变为有效;当达到清零值时,输出变为无效。
TCD 支持四种工作模式:单斜坡模式、双斜坡模式、四斜坡模式和双斜率模式。这些名称表示定时器经历的周期数。四斜坡模式会经历四个周期,依次在 CMPASET、CMPACLR、CMPBSET 和 CMPBCLR 时重置;双斜坡模式会经历两个周期,依次在 CMPACLR 和 CMPBCLR 时重置;单斜坡模式仅在 CMPBCLR 时重置;最后,双斜率模式会先向上计数到 CMPBCLR,然后再向下计数到零。为了便于直观理解,下面的图示中每个斜坡的终点在 y 轴上的位置相同;然而,当相关值不相等时,实际情况会有所不同。此外,未显示的值(例如单斜坡模式下的 CMPASET)仍然有效,只是在周期中不起作用。
图 2 - TCD 工作模式
通过事件系统,TCD 还支持输入消隐、数字滤波,以及多种用于清除输出和 / 或暂停计数的故障模式。TCD 也可用于输入捕获。此外,TCD 可以与锁相环(PLL)配合使用,这使得 TCD 能够以高于主时钟的频率运行。
更多产品: