OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3079|回复: 8

请问定时器中断正在执行时被再次触发是MCU怎么处理的

[复制链接]

3

主题

7

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-5-22
在线时间
4 小时
发表于 2016-5-22 18:07:07 | 显示全部楼层 |阅读模式
4金钱

void TIM2_IRQHandler(void)
{

        if (TIM_GetITStatus(TIM2, TIM_IT_CC1) != RESET)
                {          TIM2CC1++;
                        if(TIM1OFF)
                        {TIM2CH1_CAPTURE_VAL=TIM2CC1;
                         TIM2CC1=0;
                        }
                       
        }
               
        if (TIM_GetITStatus(TIM2, TIM_IT_CC2) != RESET)
                {          TIM2CC2++;
                        if(TIM1OFF)
                        {TIM2CH2_CAPTURE_VAL=TIM2CC2;
                         TIM2CC2=0;
                       
        }
                        if (TIM_GetITStatus(TIM2, TIM_IT_CC3) != RESET)
                {          TIM2CC3++;
                        if(TIM1OFF)
                        {TIM2CH3_CAPTURE_VAL=TIM2CC3;
                         TIM2CC3=0;
                       
        }
if (TIM_GetITStatus(TIM2, TIM_IT_CC2) != RESET)
                {          TIM2CC2++;
                        if(TIM1OFF)
                        {TIM2CH4_CAPTURE_VAL=TIM2CC4;
                         TIM2CC4=0;
                       
        }
    TIM_ClearITPendingBit(TIM2, TIM_IT_CC1|TIM_IT_CC2|TIM_IT_CC3|TIM_IT_CC4);|TIM_IT_CC4 )

}
                }

如果由TIM_IT_CC1触发中断正在执行还没结束,|TIM_IT_CC2又触发了MCU会怎样处理?  同一中断函数void TIM2_IRQHandler(void)被不同的中断源在同一时刻触发(TIM2, TIM_IT_CC1|TIM_IT_CC2|TIM_IT_CC3|TIM_IT_CC4);|TIM_IT_CC4 )有没有优先级?

最佳答案

查看完整内容[请看2#楼]

等到第一个执行完再执行下一个中断
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2016-5-22 18:07:08 | 显示全部楼层
等到第一个执行完再执行下一个中断
我有故事,你有酒吗
回复

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-5-22
在线时间
4 小时
 楼主| 发表于 2016-5-22 18:08:39 | 显示全部楼层
大家快来看看
回复

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-5-22
在线时间
4 小时
 楼主| 发表于 2016-5-22 18:30:58 | 显示全部楼层
来俩不甜的 发表于 2016-5-22 18:21
等到第一个执行完再执行下一个中断

那有没有优先级
回复

使用道具 举报

6

主题

1097

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3571
金钱
3571
注册时间
2014-12-2
在线时间
365 小时
发表于 2016-5-22 18:33:19 | 显示全部楼层

只有新中断的抢占优先级比当前高,才会打断,
自己肯定不会比自己高。。。所以不会打断
坚决不用寄存器,拒绝重复造轮子。
回复

使用道具 举报

43

主题

481

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1352
金钱
1352
注册时间
2014-12-24
在线时间
321 小时
发表于 2016-5-22 18:34:15 | 显示全部楼层
新的中断被挂起
回复

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2016-5-22
在线时间
4 小时
 楼主| 发表于 2016-5-22 18:47:00 来自手机 | 显示全部楼层
jinggx 发表于 2016-5-22 18:34
新的中断被挂起

定时器内部中断能被挂起吗,
回复

使用道具 举报

43

主题

481

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1352
金钱
1352
注册时间
2014-12-24
在线时间
321 小时
发表于 2016-5-22 18:49:14 | 显示全部楼层
已经在执行的还怎么挂起?
回复

使用道具 举报

14

主题

1592

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
2622
金钱
2622
注册时间
2014-7-17
在线时间
350 小时
发表于 2016-5-22 20:46:32 | 显示全部楼层
没试过!!!
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 10:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表