打印
[牛人杂谈]

系统定时器 (SysTick)是干啥用

[复制链接]
1601|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Cortex-M0 包含一个集成的系统定时器 — SysTick。它提供一种简单的,24位写清零、递减、自装载同时具有可灵活控制机制的计数器。
该计数器可用作实时系统(RTOS) 的滴答定时器或一个简单的计数器。
当系统定时器使能后,将从 SysTick 的当前值寄存器 (SYST_CVR) 的值向下计数到0,并在下一个时钟周期,重新加载在 SysTick 重新加载值寄存器 (SYST_RVR) 的值,然后随接下来的时钟递减。
当计数器减到0时,标志位COUNTFLAG置位,读 COUNTFLAG 位使其清零。
复位后,SYST_CVR 的值未知。
在使能前,软件应该写该寄存器使其清零。
这样确保定时器在使能后以SYST_RVR中的值计数,而非任意值。
若SYST_RVR是0 ,在重新加载这个值后,定时器将保持当前值0,这种机制可以用来在不使用系统定时器的使能位的情形下禁用系统定时器。


沙发
huangcunxiake|  楼主 | 2018-9-25 22:03 | 只看该作者
标红的那个对应后面的使能前应该清零。

使用特权

评论回复
板凳
huangcunxiake|  楼主 | 2018-9-25 22:04 | 只看该作者
要不然你根本不理解第一次怎么没有标志位置位。

使用特权

评论回复
地板
huangcunxiake|  楼主 | 2018-9-25 22:07 | 只看该作者

这个clk头文件里的定义也看得出。
设置加载的值,然后清零当前计数器,然后启动。

使用特权

评论回复
5
huangcunxiake|  楼主 | 2018-9-25 22:07 | 只看该作者
搞清楚手册介绍的具体含义和操作流程,那么就简单了。

使用特权

评论回复
6
观海| | 2018-9-26 07:36 | 只看该作者
非常感谢分享

使用特权

评论回复
7
mintspring| | 2018-9-26 16:50 | 只看该作者
一般用操作系统的时候会使用这个时钟。提供时间基准。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

189

主题

3407

帖子

9

粉丝