定时器基础:分类及影子寄存器功能解析

需积分: 0 0 下载量 6 浏览量 更新于2024-01-30 收藏 2.74MB DOCX 举报
《定时器笔记1》总结 定时器是嵌入式系统开发中常用的一个模块,常用于计时、周期性任务触发等应用。本文主要讲解了定时器的基本概念和分类,以及一些相关的编程问题。 一、定时器的分类 定时器一般分为基本定时器、通用定时器和高级定时器三种,区别在于功能的多少。基本定时器功能最简单,通用定时器功能相对较多,高级定时器则更加复杂强大。三者的层次关系为:基本定时器 < 通用定时器 < 高级定时器。 二、影子寄存器的作用 影子寄存器是定时器中的一个缓冲寄存器,起到一个缓存作用。它的作用是将用户设置的值缓存到寄存器中,待下次计数结束后才会起作用。如果没有影子寄存器,用户设置的值会直接起作用。影子寄存器实际上就是我们所说的“数据缓存”。 三、PCLK1和PCLK2时钟问题 PCLK1和PCLK2是与定时器相关的两个时钟信号。这里的“如果预分配系数=1,则频率不变,否则频率x2”指的是APB1和APB2的分频,而不是PSC的分频系数。通过计算可得,当APB1二分频时,TIM2~7的时钟频率为36MHz \times 2 = 72MHz,APB1未分频时,TIM1/8的时钟频率为72MHz。 四、定时器的编程问题 1. 如何实现定时500ms? 实际上,定时器的计数周期是有限的,无法准确计时500ms。但可以通过一个中断和一个全局变量来实现,在定时器中断中,每次触发中断时,全局变量time加1。定义一个定时器的时基,使用定时器中断每隔一定时间触发一次,然后通过全局变量累加来实现定时功能。 2. 定时器中断问题 中断是定时器常用的触发方式之一,当定时器计数满足一定条件时,触发中断。通过在中断服务函数中对任务进行处理,可以实现定时任务的执行。 以上为《定时器笔记1》的总结内容,主要介绍了定时器的基本概念、分类和一些常见的编程问题。定时器在嵌入式系统开发中应用广泛,掌握定时器的原理和使用方法对系统开发非常重要。