当前位置: 首页 > news >正文

单片机CPU内部的定时器——滴答定时器

以STM32U575RIT6为例
1.Systick定时器概念

SysTick又称滴答定时器。是一个定时设备,位于Cortex-M33内核中,和NVIC配合使用(可以产生异常信号),产生SysTick异常可以对输入的时钟进行计数,系统定时器一般用于操作系统,用于产生时基,维持操作系统的心跳。(1ms)

2.工作原理

滴答定时器是一个24位递减定时器,也就是最多能计数2^24(0xFFFFFF) 16,777,216。

SysTick设定初值并使能后,每来一个时钟信号,计数值就减1。

计数减到0时,触发异常(在CPU内部触发的是异常),SysTick计数器自动重装,初值并继续减一,循环不断。

(1)过程:重装载寄存器内部存的是经过计算出来的要计算的次数(后续介绍如何计算),定时器就从0开始向上计数,每来一个脉冲信号,定时器次数+1,等到定时器次数等于重装载寄存器的值之后,再来一个脉冲信号,就会产生异常。

(2)如何计算重装载寄存器的值:

频率:一秒钟震荡的次数符号:f

周期:震荡一次所需的时间;符号:T

周期与频率是倒数的关系,可以记住以下频率与周期的对应关系:1HZ--1S;1KHZ----1ms;1MHZ---1us;

频率是4MHZ要计时1ms,重装载寄存器的值是多少?

分析:已知频率和定时的时间,需要计算的是重装载寄存器的值?

解:4MHZ对应的周期是(1/4MHZ)[震荡一次所需要的时间是1/4us]

那震荡多少次可以计时1ms,可以得出是4000次;因此重装载寄存器是4000-1;

3.为什么中断一般情况下不可以使用延时操作:

http://www.dtcms.com/a/299921.html

相关文章:

  • 智慧水库边缘计算技术路线与框架设计
  • 21-ospf多区域
  • Python编程:初入Python魔法世界
  • Java 面向对象之方法与方法重载:从基础到实践
  • Go 多模块仓库标签管理教程
  • 详解Aerospike数据库在Linux系统上的安装流程
  • LLM中 词嵌入向量中的正负值表示什么含义
  • Aerospike与Redis深度对比:从架构到性能的全方位解析
  • 【HTML】<script>元素中的 defer 和 async 属性详解
  • 认识泛型、泛型类和泛型接口
  • 服务器生成图片
  • 力扣872. 叶子相似的树
  • Ubuntu系统安装EasyTier组网
  • rt-thread 5.2.1 基于at-start-f437开发过程记录
  • Flutter开发 BUG 记录 (持续更新)
  • [特殊字符] 嵌入式队列精要指南:数据流的艺术与实战
  • Python爬虫实战:研究furl库相关技术
  • 阿里开源Qwen3-Coder,编程大模型进入高效时代
  • 文件操作认识
  • 差模干扰 共模干扰
  • QUIC协议如何在UDP基础上解决网络切换问题
  • PCIe 的L状态(链路状态)和D状态(设备状态)
  • 命令行创建 UV 环境及本地化实战演示—— 基于《Python 多版本与开发环境治理架构设计》的最佳实践
  • oracle数据库表空间碎片整理
  • 基于java的在线教育平台管理系统、在线学习系统的设计与实现
  • 图解同步/异步,阻塞/非阻塞,五种模型之差
  • 【AcWing 830题解】单调栈
  • Node.js 模拟 Linux 环境
  • 栈----2.最小栈
  • S7-200 SMART 数字量 I/O 组态指南:从参数设置到实战案例