[牛人杂谈] 系统定时器 (SysTick)是干啥用

[复制链接]
 楼主| huangcunxiake 发表于 2018-9-25 22:02 | 显示全部楼层 |阅读模式
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 | 显示全部楼层
932215baa40e7030a7.png
这个clk头文件里的定义也看得出。
设置加载的值,然后清零当前计数器,然后启动。
 楼主| huangcunxiake 发表于 2018-9-25 22:07 | 显示全部楼层
搞清楚手册介绍的具体含义和操作流程,那么就简单了。
观海 发表于 2018-9-26 07:36 | 显示全部楼层
非常感谢分享
mintspring 发表于 2018-9-26 16:50 | 显示全部楼层
一般用操作系统的时候会使用这个时钟。提供时间基准。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

222

主题

3700

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部

222

主题

3700

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部