1.1 定时器简介
1.1.1 什么是定时器?
定时器=闹钟,指定某个时间段干什么。
嵌入式中定时器的概念是能代表时间的东西就是定时器。
怎么代表时间,以数值代表时间,数值的计数间隔就是固定的。
总结:如果一个东西可以用于数数(计数),计数的时间间隔如果是固定的,所数的数就能代表时间,这个东西就是定时器。
定时器其实就是计数器,但是计数的时间间隔相同。
系统滴答定时器它的计数器是24位的,最大计数值是2^24。
1.1.2 定时器有什么用?
对于机器来说可以用于设定工作的时间,对于人来说可以看过去了多久。
1.1.3 定时器怎么用?
选定固定的计数源,计数器计数,计数器的值代表时间。
所以接下来学习的目的就是搞定上面的三件事:计数源是谁?怎么开始计数?计数器的值代表的时间是多少?
1.2 定时器应用
1.2.1 看框图
从框图和简介可以知道:预分频器将提供给定时器的时钟频率降低,计数器根据降低后的频率计数,自动重装载值代表计数上限。
1.2.2 查看时钟树
查看完之后了解,定时器的时钟频率是84M,我现在想实现一秒钟的定时怎么办??也就是说计数器每次计数到上限的时候刚刚好一秒??怎么设置??8400分频、10000上限值刚好一秒。
1.2.3 定时器配置
上面设定完成之后,开启定时器,定时器就会自动计数,每一秒产生一次溢出事件,我检测溢出事件就知道是否过去一秒了。
1.2.4 标志位检测
标志位检测函数如下
我们是溢出事件,也就是更新事件,所以检测更新标志位。
注意:标志位是不能自动清零的,所以这里需要使用清除函数对其进行清除。
示例代码