打印

新手请教Keil C编程 外部中断和强制跳转

[复制链接]
4465|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wjhhhh|  楼主 | 2008-11-7 11:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一段程序用在89S52:
void main()
{ ......
  ......
  while(1)
    {
       for(;;) //第一个死循环
         {;;;} //里面有多个语句、调用函数等等
       for(;;) //第二个死循环
         {;;;} //里面有多个语句、调用函数等等
    }
}
void wai_zhong_duan_0() interrupt 0//外部中断 
{
  EX0=0;        //P3^2是外部硬件中断,手动按下一个按钮
  if(P3^2==0){;;}//进入中断后 执行一个命令 跳到第二个死循环里
  EX0=1;
}
开始在第一个死循环里运行。进入中断后 执行一个命令 跳到第二个死循环里运行。想用GOTO,不在一个函数里 不能。设置一个标记,则要在第一个里面逐句判断,语句多太困难了。请教有什么好办法达到目的?
  谢谢

相关帖子

沙发
HWM| | 2008-11-7 11:21 | 只看该作者

为何要如此“死”脑筋,不会加个标志切换?

使用特权

评论回复
板凳
xwj| | 2008-11-7 11:49 | 只看该作者

唉,先把脑筋转过来再说...

使用特权

评论回复
地板
jasonny| | 2008-11-7 13:13 | 只看该作者

可使用中断标识符

使用特权

评论回复
5
mymystery| | 2008-11-7 13:16 | 只看该作者

看看

我理解的是 应该置一个全局变量标志 第一个死循环检查标志位,中断发生修改标志位,中断返回等检查到标志位变动则跳出继续下一个死循环。不知道是不是这样的,哈哈我也才学不懂欢迎丢砖头

使用特权

评论回复
6
wjhhhh|  楼主 | 2008-11-7 17:03 | 只看该作者

脑袋还没转过来......,再请各位指教

“中断标识符”是中断发生的特定系统标记还是用户自己定义的一个变量?中断程序结束只能返回现场吗?能否在中断程序里删掉进入中断前保存的记录,再用一个什么命令之类跳到新的程序行(块)?
    在任意时刻,希望中断发生后即刻停止正在运行的语句。中断程序结束返回去判断标志变化,判断和跳转需放在每个程序语句后面,这还行吗?
    半天了,血压升了不少,脑袋还没转过来......,再请各位指教。

使用特权

评论回复
7
johnwjl| | 2008-11-7 17:12 | 只看该作者

楼主先休息几天再来想这个问题吧.

使用特权

评论回复
8
ayb_ice| | 2008-11-7 21:10 | 只看该作者

从中断直接跳转到主程序

这太可怕了...
建议LZ先去理解什么叫中断...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

113

帖子

1

粉丝