CX32L003——定时器控制LED

来源: 执笔画紅颜 2021-06-27 23:34:00

定时器是单片机最重要的一个模块,有了定时器就可以做任何需要的功能。

本例采用通用定时器2来实现基本的定时功能——控制灯的亮灭,时间间隔设置成1S。

定时器需要设置2部分:初始化定时器、中断优先级。需要注意的是设置定时器时需要在开始使能其时钟(对于任何一个模块这一步都是必须的)。

编写定时器初始化时 按照定时器逐个看是否是相关的功能操作位即可,如果不相关,比如我们是用的定时器基本功能,而定时器捕获/比较什么的功能就是无关的,遇到这些寄存器位直接跳过即可,这种方法对于熟悉定时器会相当有帮助。

LED的初始化,这一步在之前的例子已经写过了

中断函数编写。

在这例中,我们定时1s,由于单片机默认工作时钟位24M,将其设置成24分频,周期设置成0.1s(100ms)。此时不够1s,我们在中断函数中再累计10次即可。定时公式为:time=((1/(24000000/分频系数))*周期*(中断累计计数)

状态位的变化是在定时器中更改的,主函数根据状态位的改变来改变LED灯的状态

现象如下:

消息发送“CX32L003定时器控制LED”获取工程文件

0
收藏
0