嵌入式系统中定时器与PWM的配置及应用详解
定时器的设置与理解
定时器的设置是特定于处理器的,通常用户手册会指导你完成每个寄存器的设置。不同处理器的用户手册可能会给寄存器取略有不同的名称。要理解如何使用定时器,查看芯片供应商的示例代码是个不错的方法,这些代码通常包含了以各种方式配置定时器的示例。你应该对照数据手册逐行分析示例代码,以确保理解定时器的配置方式。
有些处理器可能允许仅在定时器溢出时触发定时器操作,而不是使用比较寄存器。这相当于一个隐式匹配值,即2的定时器寄存器位数次方减1(例如,对于8位定时器,(2^8) – 1 = 255)。通过调整预分频器,大多数定时器值都可以在误差不大的情况下实现。
定时器配置的数学计算
定时器用于处理物理时间尺度,因此需要将一系列寄存器与实际时间关联起来。要记住,频率(如10 Hz)与周期(如0.1秒)成反比。
中断频率、时钟输入、预分频器和比较寄存器之间的基本关系方程为:
interruptFrequency = clockIn / (prescaler * compare)
这是一个优化问题,已知时钟输入(clockIn)和目标中断频率(interruptFrequency),需要调整预分频器和比较寄存器,直到中断频率接近目标值。若没有其他限制,这是个容易解决的问题,但实际情况并非总是如此。
数值的位数
变量能拥有的不同值的数量是2的位数次方(例如,8位可提供2^8,即256个不同值)。不过,这个数值还需包含0,所以8位无符号变量的最大值是2^8 – 1,即255。而有符号变量会用一位表示符号(+/-),所以8位有符号变量
超级会员免费看
订阅专栏 解锁全文

273

被折叠的 条评论
为什么被折叠?



