Board logo

标题: [求助]我的中断返回不了 [打印本页]

作者: help02034025    时间: 2006-5-1 18:01     标题: [求助]我的中断返回不了

  #pragma CODE_SEG NON_BANKED
 interrupt void timer_channel0_isr(void)
  {
    TIE   &=0xFE;     //  Timer Interrupt Mask disable
    TFLG1 |=0x01;   //  Input Capture/Output Compare Channel “x” Flag.
             //  To clear a bit in the flag register, write a one to the bit.
    PWME  &=0xFB;     //  Disable pwm1         
  }
 #pragma CODE_SEG DEFAULT


怎么执行到中断服务程序后还回不了呢?
 


作者: seuafu2005    时间: 2006-5-3 08:38

是不是你的中断间隔太密了,总是进入中断
作者: lujiajiang    时间: 2006-5-14 17:58

help02034025,你的问题我也遇到了,不知你解决没有?到底是什么原因?
作者: wuyue    时间: 2006-5-14 18:31

这个问题难了我好久,各位高手,谁能指点一下。
为什么定时的中断无法返回,程序一直在中断服务函数里跳。
作者: flying1983    时间: 2006-5-15 14:28

关中断之后是不是还要再开一下
作者: flying1983    时间: 2006-5-15 14:40

应该在中断子程序结束时在把本程序开头禁止的中断在使能 一下,我试过了。
作者: wuyue    时间: 2006-5-16 15:03

昨天仔细查看了一下,中断是可以返回的,不要用单步调试,单步调试时指令指针不会返回到主程序的,个人估计可能是在单步调试时,TCNT仍在计数。可以尝试在中断服务函数里给一个变量赋值,然后在主程序EnableInterrupt语句后加入一些指令(因为EnableInterrup是清除全局中断屏蔽位I的,清除后便可进入中断),查看中断里的赋值是否有效,具体可以在IO口上拉高或拉低电平,驱动LED。注意,用以检测的赋值变量必须声明为全局静态变量。
作者: geathem    时间: 2006-5-17 21:46

应该是模块在单步调试时仍然在运行导致的,可以设置。
另外,大家有没有遇到这样情况,就是我在XGATE和CPU交互的时候怎么一全速就在命令窗口出现illegal-BP啊?
我用XGATE做PIT和ADC中断时是可以的啊,可用他做SCI时候就不行了,中断向量和优先级分配应该也没问题的,下次吧代码贴出来。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0