当前位置: 首页 > 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.lryc.cn/news/600901.html

相关文章:

  • Linux DNS 服务器正反向解析
  • Mybatis学习之配置文件(三)
  • Linux随记(二十一)
  • 变频器实习DAY15
  • Linux内核设计与实现 - 第13章 虚拟文件系统(VFS)
  • Linux shuf命令随机打乱行顺序
  • 差模干扰 共模干扰
  • 利用RAII与析构函数避免C++资源泄漏
  • kafka的部署和jmeter连接kafka
  • 20250726-2-Kubernetes 网络-Service 定义与创建_笔记
  • C++/CLI vs 标准 C++ vs C# 语法对照手册
  • Java 大视界 -- Java 大数据在智能医疗影像数据标注与疾病辅助诊断模型训练中的应用(366)
  • greenhills编译出错问题
  • 20250726-1-Kubernetes 网络-Service存在的意义_笔记
  • 【Spring AI】大模型服务平台-阿里云百炼
  • 高可用集群KEEPALIVED的详细部署
  • 【MySQL】MySQL 缓存方案
  • 使用Clion开发STM32(Dap调试)
  • 在 Scintilla 中为 Squirrel 语言设置语法解析器的方法
  • Flutter控件归纳总结
  • 面试150 IPO
  • 达梦[-2894]:间隔表达式与分区列类型不匹配
  • 大语言模型困惑度:衡量AI语言能力的核心指标
  • Windows Server容器化应用的资源限制设置
  • 小白成长之路-部署Zabbix7(二)
  • Word文档试卷处理新方案:答案提取与格式化一键完成
  • MongoDB数据库高并发商业实践优化·运行优化之不可使用root账户进行MongoDB运行-优雅草卓伊凡
  • python面向对象编程详解
  • Django+celery异步:拿来即用,可移植性高
  • go-admin 构建arm镜像