OpenEdv-开源电子网

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

中断响应问题。疑难杂症,真心求教

[复制链接]

3

主题

14

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-4-26
在线时间
0 小时
发表于 2015-8-1 20:30:17 | 显示全部楼层 |阅读模式
5金钱
外部中断1 抢占0,子优先2,组2
外部中断9_5 抢占1,子优先2,组1

问题是这样的,上电之后,如果是先进的外部中断1,那么此中断可以一直正常使用,但是这时外部中断9_5不能使用
如果是上电子后中断9_5先触发,此中断可以正常使用,但是中断1不能使用,不知道是为什么。
//外部中断1服务程序
void EXTI1_IRQHandler(void)//红外1对应的中断函数
{
EXTI->IMR = 0<<1;//屏蔽中断
hongwai1jishi = 0;
flaghongwai1 = 1;
TIM6->CR1 |= 0x01;
 
EXTI->R=1<<1;  //清除LINE1上的中断标志位 
EXTI->IMR = 1<<1;//开启中断
}

//外部中断9~5服务程序
void EXTI9_5_IRQHandler(void)//huoer对应的中断函数
{
EXTI->IMR = 0<<6;//屏蔽中断

  huoercnt++;

EXTI->R=1<<6;     //清除LINE6上的中断标志位 
EXTI->IMR = 1<<6;//开启中断
}


最佳答案

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

MRx: 线x上的中断屏蔽 0:屏蔽线x上的中断请求; 1:开放线x上的中断请求。 你的程序屏蔽中断那一步,就是把开放你的中断的同时,屏蔽其它中断。所以就会出现你所说的,只能用一个中断,希望没说错。 位操作的关键在于,操作你那个位的同时,不影响别的位~ 你需要使用 |= 这个来开启,还有清除的时候也要注意。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

8

主题

57

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2014-8-3
在线时间
0 小时
发表于 2015-8-1 20:30:18 | 显示全部楼层
MRx: 线x上的中断屏蔽
0:屏蔽线x上的中断请求;
1:开放线x上的中断请求。
你的程序屏蔽中断那一步,就是把开放你的中断的同时,屏蔽其它中断。所以就会出现你所说的,只能用一个中断,希望没说错。
位操作的关键在于,操作你那个位的同时,不影响别的位~
你需要使用 |= 这个来开启,还有清除的时候也要注意。
电子技能就是我行走江湖时手中的利剑。
回复

使用道具 举报

3

主题

14

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2015-4-26
在线时间
0 小时
 楼主| 发表于 2015-8-1 21:21:59 | 显示全部楼层
回复【2楼】腾飞:
---------------------------------
真心感谢 确实是这个样子的  我的那个虽然是都设置了 但是只能使用第一个触发的那个    

你的回答太棒了
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-18 22:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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