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

定时器:中央对齐模式剖析

中央对齐模式(Center-Aligned Mode)下,当配置为 模式3(CMS[1:0] = 11) 时,定时器会同时触发 上溢中断(ARR中断) 和 下溢中断(0中断),即一个PWM周期内会有 两次更新中断。以下是关键总结:


✅ 中央对齐模式3的中断行为

中断类型触发条件计数器动作中断标志
上溢中断计数器达到 ARR (最大值)递增 → 递减UIF (更新中断标志)
下溢中断计数器达到 0 (最小值)递减 → 递增UIF (更新中断标志)

结果
每个PWM周期触发两次更新中断,分别对应计数器在三角波的波峰(ARR)和波谷(0)。


⚠️ 关键配置

  1. 模式选择

    TIMx->CR1 |= TIM_CR1_CMS;  // CMS[1:0]=11 (模式3)
    • 模式1/2:仅单次中断(上溢或下溢)。

    • 模式3:双次中断(上溢+下溢)。

  2. 中断使能
    需同时开启更新中断:

    TIMx->DIER |= TIM_DIER_UIE;  // 使能更新中断

🔄 中断服务函数(ISR)处理

在中断函数中需:

  1. 检查中断标志

    if (TIMx->SR & TIM_SR_UIF) {  // 检查更新中断标志// 处理逻辑
    }
  2. 区分上下溢
    通过计数方向标志 TIMx_CR1.DIR 判断当前状态:

    if (TIMx->CR1 & TIM_CR1_DIR) { // DIR=1: 递减阶段 → 触发下溢中断 (计数器到0)
    } else {// DIR=0: 递增阶段 → 触发上溢中断 (计数器到ARR)
    }
  3. 清除标志位

    TIMx->SR &= ~TIM_SR_UIF;  // 清除中断标志

📊 应用场景

需求推荐模式中断次数
需要精确控制PWM对称性模式32次/周期
降低CPU中断负载模式1或21次/周期
实时更新PWM占空比模式3双时机同步

💡 重要提醒

  1. 中断频率翻倍
    若PWM频率为10kHz,模式3的中断频率为 20kHz,需确保ISR执行时间足够短。

  2. 占空比更新时机
    在 上溢中断(ARR) 中更新占空比(CCRx),可确保下一周期生效,避免脉冲断裂。

  3. 硬件资源消耗
    双中断模式会显著增加CPU负载,在复杂系统中需评估性能瓶颈。


文章转载自:

http://OfFWRClz.dpbgw.cn
http://adn1O1rh.dpbgw.cn
http://BEiX0ZoP.dpbgw.cn
http://AHdYfmkW.dpbgw.cn
http://hCpUoeJA.dpbgw.cn
http://eSAy7oxY.dpbgw.cn
http://FLjWeOgg.dpbgw.cn
http://ZluRjG42.dpbgw.cn
http://rxHm9wxP.dpbgw.cn
http://mV34pZp9.dpbgw.cn
http://8IawO6On.dpbgw.cn
http://du0j6kvR.dpbgw.cn
http://2sf7PB1p.dpbgw.cn
http://4htnMCKY.dpbgw.cn
http://nxMh5yTc.dpbgw.cn
http://YeYH0Nez.dpbgw.cn
http://S1hFXL4F.dpbgw.cn
http://uGsHg0YZ.dpbgw.cn
http://HQYnDSKM.dpbgw.cn
http://MyXPD6ob.dpbgw.cn
http://Ko4UGQtb.dpbgw.cn
http://I6mZz0EL.dpbgw.cn
http://b2Yxi476.dpbgw.cn
http://K61PcbLU.dpbgw.cn
http://dBvFaJRO.dpbgw.cn
http://chuiTwDA.dpbgw.cn
http://9jDYpYNA.dpbgw.cn
http://7hqiDXbr.dpbgw.cn
http://0E46cWeE.dpbgw.cn
http://OJ2oHRNm.dpbgw.cn
http://www.dtcms.com/a/228397.html

相关文章:

  • 06-排序
  • Java Lambda 表达式的缺点和替代方案
  • 破局与进阶:ueBIM 在国产 BIM 赛道的差距认知与创新实践
  • 【计算机网络】数据链路层——ARP协议
  • Windows【基础操作2】
  • 【WPF】从普通 ItemsControl 到支持筛选的 ItemsControl:深入掌握 CollectionViewSource 用法
  • 基于深度学习的糖尿病视网膜病变图像分类系统的设计与实现 -完整代码+数据
  • 蓝桥杯国赛训练 day1
  • 软硬解锁通用Switch大气层1.9.0系统+20.0.1固件升级 图文教程 附大气层大气层固件升级整合包下载
  • HashMap 的底层原理
  • 【Vmware】虚拟机安装、镜像安装、Nat网络模式、本地VM8、ssh链接保姆篇(图文教程)
  • 0518蚂蚁暑期实习上机考试题3:小红的字符串构造
  • (17)课36:窗口函数的例题:例三登录时间与连续三天登录,例四球员的进球时刻连续进球。
  • 简单爬虫框架实现
  • Android Kotlin 算法详解:链表相关
  • Dify:启动 Web 服务的详细指南
  • Ubuntu 22.04 安装 Nacos 记录
  • ubuntu 20.04挂载固态硬盘
  • Windows下WSL(Ubuntu)安装1Panel
  • Ubuntu 挂载新盘
  • 飞腾D2000,麒麟系统V10,docker,ubuntu1804,小白入门喂饭级教程
  • seafile:ubuntu搭建社区版seafile12.0
  • 解决 Ubuntu 20.04 虚拟机中 catkin_make 编译卡死问题
  • CppCon 2014 学习:Anatomy of a Smart Pointer
  • windows安装和部署docker
  • 八.MySQL复合查询
  • LangChain操作指南
  • 手把手教你用Appsmith打造企业级低代码平台:从部署到性能调优实战
  • 化工厂爆炸事件看制造业AI转型
  • Manus AI与多语言手写识别的创新革命:从技术突破到行业赋能