【CW32学习笔记】内核外设-滴答定时器

cathy的头像
cathy 发布于:周三, 09/27/2023 - 09:33 ,关键词:

相关文章:

【CW32学习笔记】单片机启动&库函数构成

【CW32学习笔记】看手册配置时钟树

我们在前两节讲解了单片机启动到时钟树配置的内容,到此为止,单片机已经能开发别的功能并使用了,但这里我插入一个笔者个人觉得很重要的章节来介绍一个内核外设——滴答定时器(System Tick)。

根据cortex-M0+内核手册的介绍,这是一个24位倒计时定时器,它拥有4个可以访问的寄存器,

1.png

这个定时器和一般的定时器用法没什么区别,他没有高级定时器的功能,但是由于是内核白送的定时器,所以经常用于单片机的心跳时钟。

值得注意的是,滴答定时器是一个不可修改计数方式的定时器,他只能向下计数,查阅寄存器定义之后,进行如下代码的初始化操作,即可实现1ms定时并开启定时器中断。

2.png

开启定时器并打开中断之后,定时器就能正常工作,并且会正常进入其对应的中断服务函数,中断服务函数的名字可以直接在启动文件中找到(还记得第一节讲的中断向量表吗?)。

3.png

一般情况下,芯片厂商不会主动提供滴答定时器的中断服务函数接口,也就是xxxxx_it.c文件中不会出现此中断服务函数的名字(CW32的库会提供一个参考stm32 hal库的固件库,但是我觉得写的不符合我的风格,索性自己写了一个滴答定时器的文件),任何时候,只需要有这么个同名函数存在于工程文件中,该中断服务函数就能被正常调用并执行,例如这样:

4.png

实际上,任何中断服务函数都可以用这种办法来重写一个自己的,只是大部分时候官方都已经提供了良好的固件库,也就不需要我们手动重写了。

这里编写了一个测试函数来测试滴答定时器是否正常工作,实际上是使用延时函数来验证的:

5.png

那么结果当然是正常工作的!

在这里给一些建议,上手一款新的芯片的时候,完全可以直接用滴答定时器点灯来测试和上手。

总结:

1、滴答定时器是内核外设,芯片手册不会记录它的用法,内核手册才会有它的用法。

2、滴答定时器可以作为整个程序的心跳时钟,非常常用。

来源:CW32生态社区

免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。

围观 17