找回密码
 注册
搜索
查看: 1243|回复: 7

[MCU资料] 如何能正确的跳出中断?请不吝赐教!

[复制链接]
发表于 2007-12-13 09:31:12 | 显示全部楼层 |阅读模式
下面是本人写的一段外部中断程序,利用的是外部中断0,采用按键方式。响应过程应该是:按键——中断响应进入中断——再按键——跳出中断返回中断点。在虚拟仿真和实际功能仿真中,第一步很容易实现,即中断响应进入中断,但是第二步却时行时不行的,改了很多次也不行不通。请大虾们不吝赐教!!谢谢!!
void service_int0()interrupt 0 using 2
{
uchar flag=0;
while (!flag)      
{
    if(!INT_0)
       Delay1(5);
    if(!INT_0)
        flag=1;
  }
}
这段是后来写的:具体的功能应该是按下键程序就暂停,松开键程序接着走。但是把键按下不放的过程中,看到的现象是:过段时间,下一屏数据就送上去了,该如何改一下啊?
void service_int0()interrupt 0 using 2
{
uchar flag=0;
while (!flag)      
{
        break;   
}
}
发表于 2008-1-11 08:28:00 | 显示全部楼层
ben笨猪,没有加延迟
点评回复

使用道具 举报

发表于 2008-7-17 20:25:21 | 显示全部楼层
[em09]
点评回复

使用道具 举报

发表于 2008-7-19 10:45:47 | 显示全部楼层
看你的代码,INT0应该是电平触发方式,低电平有效。不知你的寄存器设置对了没,IT0=0;
......
sbit INT_0=P3^2;
IT0=0;
//PX0=1;
EA=1;
EX0=1;
......
void service_int0()interrupt 0 using 2
{
uchar flag=0;
EA=0;//关中断,如果有其他中断源,换成EX0=0;
//EX0=0;
while (!flag)      
{   
    if(!INT_0)
       Delay1(5);
    if(!INT_0)
        flag=1;
  }
EA=1;
//EX0=1;//恢复外部0中断使能
}
[em03]
点评回复

使用道具 举报

发表于 2008-7-19 10:54:56 | 显示全部楼层
第二段程序,不知道你要实现什么功能,好像什么都没做。
void service_int0()interrupt 0 using 2[52RD.com]
{
uchar flag=0;
while (!flag)   //!flag=TRUE,  每次中断肯定为真
{
        break;  //只执行了一条break语句 ,啥都没干
}
}
[em13]
有更多的代码的话,贴出来讨论
点评回复

使用道具 举报

发表于 2008-8-1 10:20:16 | 显示全部楼层
[em01]
点评回复

使用道具 举报

发表于 2013-3-9 16:45:43 | 显示全部楼层
我觉得应该这样操作吧  外部检查是否按键---按下---进入中断---执行相应程序并检查是否再次有键按下---有键按下 关闭中断 跳出程序 ----完成
点评回复

使用道具 举报

发表于 2013-3-9 16:57:37 | 显示全部楼层
我写了个程序  请大家指点下  谢谢 附下:
void  KeyPress (void)
{
  unsigned char Key == 1 , SystemFlag ==0 ;
  if (Key == 0)
{
  TimeDelayXms (5) ;
  if (Key == 0)
  {
   SystemFlag == 1 ;
  }
  while (!Key) ;
  TimeDelayXms (5) ;
}
}


void Service_Int0 (void) interrupt 0 using 2

{
if (SystemFlag == 1)
{
  SystemFlag == 0 ;
  .........  执行程序;
  if (SystemFlag == 1)
  {
   SystemFlag == 0 ;
   EA = 0 ;
   ........... 执行程序;
  }
}
}

void main (void)
{
  KeyPress () ;
  .........
}
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-10-9 06:21 , Processed in 0.045369 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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