This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

【GPIO中断提问】分别给GPIO的2个管脚中断时,有1个管脚中断响应不了的问题

程序是为了实现,GPIO的2个管脚响应中断。但是出现了问题。

写程序时只写了这个main.c,没有写.asm。当时写了.asm,无法编译。后来删了,才编译通过,看论坛上是说用了CSL就不需要再设置中断向量了。

配置GPIO的1个管脚时,中断能够响应,会跳到中断服务程序里面。在中断服务程序里让a=1,在开发板上的80pin扩展接口处也能测到现象。

但是配置GPIO的2个管脚后,响应完第1个中断就无法再响应第2个中断,在开发板上单步运行程序的时候会卡死,不知道为什么?

求大神回答!!!

程序如图所示。

  • 请问用的是哪款器件? 

    先单独调试一下2个GPIO管脚是否都能单独进中断? 

    合并在一起后,在第一个中断响应后,跟一下代码,看第二个中断的中断标志位是否置起来了? 总中断是否使能了?

  • 用的是tmdxevm6678l,单独调试时两个管脚都能单独进中断。

    中断标志位指得是evtclr这个寄存器吗?

    这里的值在clearoutputdata和setoutputdata的时候就变得很奇怪。

    如果不是,要怎么看中断标志位?

    还有执行完第一个中断后,进去clearoutputdata的时候,之前设置pinum2为13,但这里就变成0了,还有出现负数的情况。这又是咋回事?

    总中断是能是指binten寄存器吗置1?

  • 查看INTC控制器对应的event flag register标志位
    http://www.ti.com/lit/ug/sprugw0c/sprugw0c.pdf

    以及
    查看IFR, IER, GIE这些CPU级的中断寄存器
    http://www.ti.com/lit/ug/sprugh7/sprugh7.pdf