聊聊一个关于TIMER事件触发中断的响应话题

发布者:MysticEssence最新更新时间:2024-05-23 来源: elecfans关键字:触发中断 手机看文章 扫描二维码
随时随地手机看文章

情况是这样的,现在使用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。见下图示意。闪电箭头表示发生比较事件。

7244d2a4-044b-11ef-a297-92fbcf53809c.png

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

726162ca-044b-11ef-a297-92fbcf53809c.png

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

72832860-044b-11ef-a297-92fbcf53809c.png

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

72a5ba10-044b-11ef-a297-92fbcf53809c.png

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

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

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

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


关键字:触发中断 引用地址:聊聊一个关于TIMER事件触发中断的响应话题

上一篇:STM32CUBEMX(9)--ADC通过轮询方式读取,USART打印
下一篇:判断高电平,低电平和方波的几种方法

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved