标题: 菜鸟求答疑,关于一个中断程序 [打印本页]

作者: zhongbeixhc    时间: 2013-5-19 22:21
标题: 菜鸟求答疑,关于一个中断程序
guangzhi接的是P3.3想实现的功能是按一下,就让所有的灯变红,再按一下恢复正常,中断程序如下,请大神看看哪里有问题
void guang()interrupt 2
{
     if(P3^3==0)          
         {
                 delayms(20);
                 if(P3^3==0)   
            {
                           while(!P3^3);
                         guangzhiflag=~guangzhiflag;
                        while(guangzhiflag == 1)
                        {
                                display(8,8,8,8);
                                P1=0x5b;
                                zhi_red=0;
                                zhi_green=1;
                        }
          }
   }
}



作者: admin    时间: 2013-5-20 03:21
你程序搞得这么复杂, 中断一次就取反一次 应该可以搞定吧,当然你要加入防抖动代码
作者: 382722337    时间: 2013-5-22 13:00
1、进入外中断后最好加EX=0(关闭外中断),中断结束后再打开,即:
EX = 0;
。。。
EX  = 1;
2、while循环的语句是什么意思?zhi_red表示都变红?
作者: 听,美妙的旋律    时间: 2013-7-7 15:02
中断中间不能有延时
作者: 乐儿翅    时间: 2020-7-28 10:27
中断取反,去抖就好了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1