微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 如何在外部中断服务中控制全局变量

如何在外部中断服务中控制全局变量

时间:10-02 整理:3721RD 点击:
我的目的是用独立按键触发低电平外部中断,在中断服务中对全局变量++主函数数码管显示一位数字从1到8,每按一次按钮数字加1。

一开始写程序一直不行 网上说定义 volatile  本人愚笨没试成功
最后发现一种说法是  

假如两组程序都要访问同一个资源,而作为程序员的你没有办法避免在一个进程访问完该资源之前,另一进程就来访问该资源,就出现了访问冲突,这就是临界区问题.


然后我尝试在中函数中添加延迟, 在中断服务结束后延迟主函数调用全局变量的时间然后就成功了


本人菜鸟一枚 高手轻喷 。


display函数怎么看起来怪怪的。

赋值的地方数组少了中括号P0=wz[] ;
P0=sz[] ;

void  display ()   //此处无需形参,放个i,而且还没数据类型。
{
        wela=1;
        P0=wz[0];  //选定一位就可以了
        wela=0;
        P0=0xff;  // 消影               
        dula=1;
        P0=sz[i];
        dula=0;
        delay ();
        if(i==10) i=0;     //处理一下i
        //由于按键抖动问题可能按一次会加几次。
}

是这样啊  多谢指点 下次会注意的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top