滴答定时器的计数模式_Cortex-M4 Systick滴答定时器
Tickclock可以实现精确延时,在K60的datasheet中没有详细将,现在我把我找到资料分享一下,关于systick在Cortex-M4中有讲到我们大家平常在单片机开发中经常会使用到延时函数,一般的,我们会使用变量自加循环判断的方法来实现软件延时。但是,这种方法有个弊端——延时时间不精确。主要体现在:1, 在C语言编写的延时函数中,每条函数语句的执行时间可能不同,这样,在实现延时的过程中,想通过增加或减少函数语 句来实现延时的增加或减小控制起来不太方便,时间的精确性当然很难控制;2, 由于各种不同的控制器运行的主频可能不同,执行相同的延时函数所需要的的时间值可能就不同。这样,使得这种延时函 数在不同的平台上移植起来时间的精确性就更不可靠。所以,我们就不使用这样的延时方法。从ARM Cortex-M0内核开始,一直到现在的ARM Cortex-M4,这些内核中都搭载了systick滴答定时器,它放在了NVIC中,主要目的是为了给操作系统提供一个滴答中断。当然,毕竟它也是一个定时器,我们就可以利用它来做到精确的软件延时。systick定时器是一个递减的计数器,如果设定初值并使能它以后,它会在每个系统时钟周期里计数器减1,直到减到0为止。然后,systick计数器自动重装初值并继续递减计数,如果软件上又使能了systick计数器的中断,那么,在systick计数器减到0的时候,中断被触发,当然,中断标志位也被置位。那么,每次计数器递减到0,所经过的时间值为:系统时钟周期*计数器初值。如:我们这里以飞思卡尔Cortex-M4内核的Kinetis为例,系统内核时钟频率初始化为100MHz,则系统内核时钟周期为1/100M,如果计数器的初值为100000,那么,延时的时间则为:(1/100M)*100000=0.001s=1ms。systick定时器内部几个常用的寄存器:1, systick控制及状态寄存器CTRL: 其中,CTRL[16]位是COUNTFLAG标志位,当systick计数到0的时候,该位置1,如果读取该位,则硬件自动清0,所以我们 可以用软件判断是否计数到0。 CTRL[2]位是CLKSOURE标志位,用来指示当前systick定时器的时钟源,CLKSOURCE=1表示时钟源是内核时钟(一般我们 会选择这种情况,如此处我们使用飞思卡尔Kinetis的内核时钟100MHz);CLKSOURCE=0表示时钟源是外部时钟源。 CTRL[1]位是TICKINT标志位,用来指示systick计数到0的时候是否产生systick异常请求。CTRL[0]位是ENABLE位,该位是 systick定时器的使能位。2, systick重装载计数器LOAD: 该寄存器是一个24位的寄存器,保存着systick定时器的初值,使得当systick计数到0的时候,将该寄存器中的数据重装载到 当前计数器中继续递减计数。3, systick当前数值计数器VAL: 该寄存器是一个24位的寄存器,用来指示当前的计数值。
滴答定时器的计数模式_Cortex-M4 Systick滴答定时器相关推荐
- 滴答定时器的计数模式_系统滴答定时器
STM32中的定时器: 内核:SysTick 的系统定时器 定时器的工作原理 如:想要:1ms的定时 时钟源: 72MHz 分频器:72分频 72MHz / 72= 1MHz 1/1M s = 1us ...
- 滴答定时器的计数模式_【高手私藏】STM32学习笔记:SysTick滴答时钟
今天我们来说说SysTick定时器.SysTick定时器在从参考手册中根本没有介绍.我费了九牛二虎之力才在一个犄角格拉里找到SysTick定时器的英文版的说明.在Cotex-M3有介绍,为什么要找ST ...
- 滴答定时器的计数模式_SysTick(系统滴答定时器)
一.SysTick概述 Systick定时器是一个24 位的倒计数定时器,计到0时,将从RELOAD 寄存器中自动重装载定时初值.只要不把它在SysTick 控制及状态寄存器中的使能位清除,就永不停息 ...
- 滴答定时器的计数模式_MSP432滴答定时器(SysTick)说明和配置
MSP432是 TI 的一款基于 arm cortex-M4 内核的 32 位低功耗处理器.低功耗表现十分优越.但是由于上市的时间较短,网上能查找到的相关资料是极其稀少的.所以作者想在此分享一些MSP ...
- [学习笔记]STM32F1 SYSTICK 滴答定时器(寄存器、标准库、HAL库)
目录 0. 博主理解: 1. 实验内容及步骤: 2. 硬件说明 3. 寄存器说明 3.1 SysTick的时钟和使能: 3.2 SysTick重装载数值寄存器: 3.3 SysTick的中断优先级: ...
- STM32 SysTick 滴答定时器原理及应用
SysTick滴答定时器 一.功能 SysTick定时器是一个简单的定时器,CM3\CM4内核芯片都具备此定时器.SysTick定时器常用来做延时,采用实时系统时则用来做系统时钟. 无论用作延时还是用 ...
- Systick滴答定时器解析
Systick滴答定时器 Systick定时器是什么 Systick定时器,是一个简单的定时器,对于CM3,CM4内核芯片,都有Systick定时器. Systick定时器常用来做延时,或者时系统的心 ...
- Systick滴答定时器讲解
Systick定时器基础知识讲解: Systick定时器,是一个简单的定时器,对于CM3,CM4内核芯片,都有- Systick定时器. Systick定时器常用来做延时,或者实时系统的心跳时钟.这样 ...
- STM32F4无人机Systick滴答定时器
更多交流欢迎关注作者抖音号:81849645041 目标 了解 ARM Cortex-M 系列芯片的内部时钟及定时器使用,通过配置 STM32F407 芯片的内部定时器,实现流水灯效果. 原理 Sys ...
最新文章
- 关于数据仓库数据质量的问题处理
- 让CPU占用率听你指挥
- 数学建模题目及论文_数学与运用数学专业论文题目帮助
- 数学建模——智能优化之遗传算法详解Python代码
- Java 按位运算符(,|,^,,)
- php 出错处理,PHP 错误处理机制
- 分析容灾备份建设需求
- (转载)Android studio 导入或依赖第三方库失败
- 林草资源调查监测数据下载
- Linux如何动态查看文件信息,怎么查看linux动态链接库文件的版本等其他信息
- ubuntu cmakelists 配置海康 SDK
- Sqlserver的身份验证模式
- 2048AI设计与实现
- 用纯python脚本玩转UU加速器
- tf.transpose()
- c语言单字符输入和输出函数分别为,c语言第六章字符数据
- Mapbox 加载自定义 WMS 数据源
- 黄色——网页效果图设计之色彩索引
- B. Alyona and a Narrow Fridge
- 【转】EBS财务系统总账模块(GL)会计期间状态总结