• 163查看
  • 0回复

[芯片硬件] 一个基于TIMER事件的中断响应话题

[复制链接]


该用户从未签到

发表于 27-4-2024 10:04:58 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


这里有个关于TIMER事件触发中断的响应话题,我们一起聊聊。

情况是这样的,现在使用STM32G4系列的TIM8,工作在中心对齐计数,单脉冲PWM模式,使用内部系列时钟做时钟源,计数时不做分频,即PSC=0。CH1做PWM输出。

启动时计数器从0开始计数,与RCR对应的计数器值为3。请问在0~ARR范围内调整CCR1的值时,整个工作周期内进入基于比较事件的中断响应次数可能是下面哪些选项?

A:1 B:2 C:3 D:4 E:0

要回答上面问题,我们需厘清或注意几个小细节。
第一,这里只说采用中心对齐计数模式,实际上STM32 TIMER的中心对齐计数模式有三种模式,其模式1只有在向下计数过程中发生计数器与CCR值匹配时才产生比较事件并可以触发中断或DMA。见下图示意。闪电箭头表示发生比较事件。

一个基于TIMER事件的中断响应话题w2.jpg

而中心对齐计数模式2只有在向上计数过程中发生计数器与CCR值匹配时才产生比较事件并可以触发中断或DMA。见下图示意。闪电箭头表示发生比较事件。

一个基于TIMER事件的中断响应话题w3.jpg

中心对齐计数模式3则在向上和向下计数过程中发生计数器与CCR值匹配时都可以产生比较事件并触发中断或DMA。见下图示意。闪电箭头表示发生比较事件。

一个基于TIMER事件的中断响应话题w4.jpg

第二,这里提到RCR=3和单脉冲模式。意味着从启动开始到计数停止。计数器刚好工作2个完整的计数周期,因为RCR=3对应4次计数溢出,4次溢出后产生更新事件并停止计数。

一个基于TIMER事件的中断响应话题w5.jpg

显然,这里结合第一点的提醒,我们不难得出可能发生的比较事件及相应中断响应次数的情况。不过,我这里还有第3点提醒。

第三,条件里说CCR在0~ARR范围变动,我们有必要对CCR=0和CCR=ARR时情况结合不同中心对齐计数模式来考虑。

第四,条件里对ARR和CCR的值并未具体说明,中断响应持续时间也未明确出来,这些会不会增加其它可能性呢?

那么以你的理解,结合开篇的条件和上面提醒,你认为可能出现哪些情形呢?即基于TIMER比较事件可能发生几次中断响应?或者说可能进入几次比较中断服务程序?

你根据自己的理解做出选择,我们下次找机会继续探讨、验证该话题。


快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 27-12-2024 11:10 , Processed in 0.446771 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.