导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→请问:对于51中断的处理疑问....(急!!!!谢谢各位/在[guest]

 *第9943篇: 请问:对于51中断的处理疑问....(急!!!!谢谢各位/在线等..) [求助][讨论][求助]

  
楼 主:guest 2003年4月7日20:34
 请问:对于51中断的处理疑问....(急!!!!谢谢各位/在线等..) [求助][讨论][求助]
大家好,请问:我现在遇到这样一个问题:我的甲51开了两个中断int0和int1,int1的中断源由
乙51的p1.1口提供一个低脉冲.可是不知怎么搞的,我的主51甲在没有乙51来的中断信号时,
能正常工作.可是一旦乙51的中断信号来后,甲51进入中断处理后,又跳到main函数的最前面
重新运行,这是为什么啊?
例如:main()
    {.....
     EA=0;
     while(count)
      {....}
     EA=1;   我通过灯的显示发现在运行了while(count)后开中断,甲51进入中断处理程
   //////mainloop         序,可处理完后,他不是运行mainloop而是又返回去运行
    while(1)                   while(count),这是为什么啊?????
     {.....}               
}
而我的中断处理如下:
usb_isr() interrupt 2
{ DISABLE;   有人建议我将DISABLE等去掉,可结果也一样.不知这是为什么????
  .......       难道中断程序还要标出返回的地方,这不会吧???
  ENABLE;
}
给各位大侠帮我指点指点好吗???谢谢了!!!!!!!!
  
2楼:newleaner 2003年4月7日21:21
 你这样调试看看
在中断前跟踪PC的值,中断返回时是不会违背硬件规律的,返回while(count)一定是中断发生前while(count)的地址被压入PC,如果压入的PC不是while(count)的地址而返回while(count),那么一定是堆栈操作问题了。
      如果压入的是while(count)的地址,那么你的程序流程应该有点问题,只是你没发现而已。
      还有你的“mainloop”是指的是while(1)那段么?

>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:急急急

[下一篇主题]:请教各位前辈!