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.

DSP芯片f2812中断子程序关闭中断使能问题



        前提:禁止非屏蔽中断NMI。

       XIntruptRegs.XNMICR.bit.ENABLE=0; //禁止非屏蔽中断NMI

        上位机下发指令后,中断使能置1,使用芯片引脚外触发中断子程序(如下),完成program后,关闭本中断使能IER  = IER&0xEFFF(中断13),标志寄存器清零 IFR  = 0x0000。单步执行出中断子程序,使能恢复为1,这是为什么?此时再来外触发,中断依然响应,而我的目的是完成中断子程序后使能关闭,需要再次上位机下发指令,才能使用外触发中断程序。

interrupt void INT13_ISR(void)

{

    IER  = IER&0xEFFF;

    IFR  = 0x0000;

    /*program*/

    IER  = IER&0xEFFF;

    IFR  = 0x0000;

}

 请问这是DSP芯片自身设置程这样?可以按照我的意愿完成吗?

另外,进入中断子程序,中断使能自动复位吗?

  • 单步执行有时候说明不了问题  

    你的想法肯定是能实现的    建议你整体进行测试

    然后重点通过手册看看这些使能位的使用

  • 进行了测试,响应外触发进入中断子程序执行完毕回到主程序后,再进行外触发,还是会进入中断子程序。说明退出子程序后中断使能复位1是确实存在的。不知道这个复位的动作从何而来?

    手册貌似没有对中断使能另外的讲解(除了使用IER)。