OpenEdv-开源电子网

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

请问如何在主程序中读取中断中改变全局变量值

[复制链接]

5

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2015-4-15
在线时间
3 小时
发表于 2017-12-22 11:26:47 | 显示全部楼层 |阅读模式
请问如何在主程序中读取中断中改变全局变量值?
例如
u16 var;
void isr(void){
      var++;
}
void main(void){
     di();//关总中断
     u16 tmp = var;
     ei();//开总中断
     if(tmp>=1000){
           var=0;
           //其他事情
     }
}
请问总中断一关一开有没有必要?


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

16

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1292
金钱
1292
注册时间
2014-12-20
在线时间
534 小时
发表于 2017-12-22 11:39:35 | 显示全部楼层
回复 支持 反对

使用道具 举报

60

主题

409

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2814
金钱
2814
注册时间
2012-10-17
在线时间
653 小时
发表于 2017-12-27 16:58:22 | 显示全部楼层
本帖最后由 civic7366 于 2017-12-27 17:03 编辑

有喔...我之前有一個BUG就是這樣產生的...

也是在中斷中修改全域變數, 然後在主程序中作一些判斷&運算

if(XX>100) //先過了判斷式
{
    進來後發生中斷...XX>100 不成立了    這邊對XX的處理都錯了
}
else
{

}

只能在if上下開關中斷...
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-25 23:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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