在嵌入式系统中,定时器(Timer)是一个非常重要的外设模块。它不仅用于实现精确的延时,还常常用来生成脉宽调制(PWM)信号、捕捉外部事件以及执行周期性任务。
1. 定时器的基本概念
定时器是一种硬件模块,用于计数时钟脉冲或外部信号,从而实现时间控制功能。与依赖软件实现延时不同,硬件定时器具有更高的精度和更低的 CPU 负载。
我们以AVR® 微控制器为例,介绍一种常见的定时器工作方式:
- TCA 定时器工作方式
TCA 是一款经过优化的定时器,专门用于生成脉宽调制(PWM)信号。存在于 tinyAVR 0 系列、tinyAVR 1 系列、megaAVR 0 系列和 AVR DA 系列等设备中。
图 1 - TCA 定时器功能框图
它可以工作在 16 位模式,以实现高分辨率输出;也可以工作在 2 个 8 位模式,此时定时器的每一半都能独立运行。定时器会一直运行,直到达到上限(TOP)值。当达到上限值时,定时器会重置为下限(BOTTOM)值(即零),但双斜率模式除外。在双斜率模式下,定时器不会重置为零,而是会向下计数到零,从而重置计数周期。如下图 1 所示。
图 2 - TCA 定时器工作方式
为了生成 PWM 信号,TCA 设有比较通道,用于检查定时器的值是否与设定值匹配或超过设定值。如果匹配或超过,相关的输出就会变为高电平。该定时器还支持双缓冲功能,即写入定时器的值会被暂存,直到定时器触发更新操作(具体的更新方式因工作模式而异)。借助事件系统(EVSYS),还可以实现更高级的控制。例如,事件系统可用于对输入进行门控、对事件边沿进行计数、控制计数方向(向上或向下),以及在各种条件下重启定时器。
下一篇帖子,我们继续介绍 AVR 定时器 TCD模式介绍
更多产品: