在单片机开发中,我遇到了一个很奇怪的关于外部中断的问题

问题描述

在单片机开发中,我遇到了一个很奇怪的关于外部中断的问题

void button_int0 () interrupt 0 { //当函数正确时,需改正delay(大数目)为delay_stop(大数目);
uchar timp;
uint i=0;
/****
IE=0x80时,程序执行完了,但是没有办法退出中断,
当使用EA=0时,就可以退出中断了。很肯定的是,并没有重复进入中断。
*****/
//IE=0x80;
EX0=0;
EA=0;

light =1;

timp=P1;
exit_flag=off;

 # if test
    test_define();
 # endif

   //closs door

    while(P1!=0XFF);          //waiting the (button)interrupt 0 relax

# if test
     light=!light;                      // test why doesn't IE equal 0x80
     delay(20000);

# endif

    while((P1!=0xEF)&&(exit_flag==off)){       //按下P14口实现“取消”功能 并且在调用函数中没有按“取消”
        timer_selection(trace_kb(0,0,0));
        //trace_kb(0,0,0);
    }

     LIGHT_off();            // test why doesn't IE equal 0x80

# if test
light=!light; // test why doesn't IE equal 0x80
delay(20000);
# endif

    delay_stop(22500);       //  等待松开按键,预防按键出错再次进入到中断中
    EX0=1;
    EA=1;
    return;

}

解决方案

实际按键时会跳动,也就是中断口容易多次快速触发,中断程序中 用 delay 是不可取的。用while()也是不可取的,建议 重新设计按键程序。

解决方案二:

实际按键时会跳动,也就是中断口容易多次快速触发,中断程序中 用 delay 是不可取的。用while()也是不可取的,建议 重新设计按键程序。

时间: 2024-08-07 08:43:36

在单片机开发中,我遇到了一个很奇怪的关于外部中断的问题的相关文章

android开发-急!遇到了一个很奇怪的集合问题,在线等大神解答!!!

问题描述 急!遇到了一个很奇怪的集合问题,在线等大神解答!!! 如标题那样,集合A是个全局变量,A是要用来加入集合B中去的.第一次加入没有问题,在第二次A的元素改变之后再次加入到B中去的时候,B中属于A的集合那部分属性的值全部变成A现在的值了.这是为什么呢,在线等大神解答啊.二楼上代码 解决方案 LinearLayout layout6; LinearLayout layout7; LinearLayout layout8; Button mShopping_Car; Button mShow_

c语言 单片机-keil4开发中遇到的一个很奇怪的问题。

问题描述 keil4开发中遇到的一个很奇怪的问题. void main(){ // uchar test_i; const uchar timp_button=0xfF; //this value is that the button havn't sticked uchar n_delay; //delay unsigned char j=0; unsigned char i; intend_initiation(); //调用时间设定程序 while(1){ if((hour==alarm_

jpanel-java开发中我设置了一个JPanel里面装了图片作为背景 但是为什么没有显示出来背景图片

问题描述 java开发中我设置了一个JPanel里面装了图片作为背景 但是为什么没有显示出来背景图片 此段代码中什么地方出错了?为什么我的ip,h还有rs,drgl这三个地方的背景图片 无法显示或者切换? p4=new JPanel(new BorderLayout()); p2=new JPanel(new CardLayout()); //处理p2,p3,p4 p2_lab1=new JLabel(new ImageIcon("image/21.jpg")); p2_lab2=ne

ios开发中uiscrollview里嵌套一个uiscrollview

问题描述 ios开发中uiscrollview里嵌套一个uiscrollview ios开发中uiscrollview里嵌套一个uiscrollview 其中小得scrollview是一个用于放滚动图片的.大得scrollview是用于整个view滚动的..其中还有很多别的view譬如imageview等,现在遇到这样的问题:我滚动大得scrollview,放滚动图片的scroll不跟着动,就一直悬在固定的位置.求解 急呀 解决方案 如果小的uiscrollview是作为subview添加到外部

ios开发中能不能用一个app去下载另一个app的安装包并自动安装

问题描述 ios开发中能不能用一个app去下载另一个app的安装包并自动安装 需求:有一个主APP,用来下载其他APP,比如下载完成后自行安装到主APP中(就像插件),然后会产生一个图标,点击这个图标就会启动新安装的APP,当安装这个APP后又返回到主APP中.---------有点像Iphone的桌面. 有没有大神知道类似的实现方法. 解决方案 你看看腾讯的qq农场,其中需要跳转到qq牧场的时候就和你的情况一样,ps:QQ农场和qq牧场是俩app 解决方案二: 一般来说都是跳到APP stor

html5-手机网页开发中,怎么设置一个浮框,使得浮框在页面位置不变,浮框内东西可以上下滑动查看

问题描述 手机网页开发中,怎么设置一个浮框,使得浮框在页面位置不变,浮框内东西可以上下滑动查看 现在需要达到在页面有一个浮框,但是浮框位置不变,大小不变.浮框内有文字, 文字超出浮框大小,能上下滑动查看浮框里的内容,整个页面不变 解决方案 搞个absolute定死位置 滑动的可以找个js包调用 很多的 解决方案二: 推荐你一个前端框架AmazeUI里面有个js插件叫模态窗口,你去研究研究

exec php linux-关于PHP开发中所遇到得一个问题!

问题描述 关于PHP开发中所遇到得一个问题! 最近在帮老师做一个东西,我需要提交一种特定格式得文件例如test.in上传服务器后,用exec通过一个命令格式为:./imd <ttest.in> result.out 输出一个文件.但是""<"">""这样得符号通过php解析后必须写成&lt和&gt得形式,这个shell命令写成转义字符后就无法执行... 请问有别的方法通过PHP命令的形式来输入<>

结构体数组-C++中一个很奇怪的数组

问题描述 C++中一个很奇怪的数组 static const AP_Scheduler::Task scheduler_tasks[] PROGMEM = { { ins_update, 1, 1000 }, { one_hz_print, 50, 1000 }, { five_second_call, 250, 1800 }, }; 注:AP_Scheduler是一个类,Task是这个类的结构体成员,一下是Task的定义: struct Task { task_fn_t function; u

java-新手问一个很奇怪的问题

问题描述 新手问一个很奇怪的问题 class Demo { int num = 1; int add = 2; Demo() { num = 5; add = 6; } void show() { System.out.println("Fu num="+num+" Fu add="+add); } } class DemoA extends Demo { DemoA() { this.num = 3; this.add = 4; } void show() { S