asas1235813 发表于 2013-8-15 16:46

为什么DSP程序每次进入中断之后需要再开全局中断???

为什么DSP程序每次进入中断之后需要再开全局中断???

zhangmangui 发表于 2013-8-15 21:07

你肯定是进入后关了全局中断为了下次能进肯定要打开

asas1235813 发表于 2013-8-16 09:07

zhangmangui 发表于 2013-8-15 21:07 static/image/common/back.gif
你肯定是进入后关了全局中断为了下次能进肯定要打开

看中断资料的时候。。。
2.中断函数
interrupt void T1PINT_ISR(void)   
{
...........
...........   
EvaRegs.EVAIFRA.bit.T1PINT=1;   //清除中断标志位
PieCtrlRegs.PIEACK.bit.ACK2=1;//响应同组中断
//Here is a bug

EINT;                           //开全局中断
}
最后加上了开全局中断,在代码中删除EINT发现也能再次进入中断。所以不太懂要加上EINT。。。。
是为了保证一定能再次进入中断?请教。。。。

zhangmangui 发表于 2013-8-16 09:09

asas1235813 发表于 2013-8-16 09:07 static/image/common/back.gif
看中断资料的时候。。。
2.中断函数
interrupt void T1PINT_ISR(void)   


你的代码如果是这样的话这句完全可以不加

zhangmangui 发表于 2013-8-16 09:11

asas1235813 发表于 2013-8-16 09:07 static/image/common/back.gif
看中断资料的时候。。。
2.中断函数
interrupt void T1PINT_ISR(void)   


像这样就可以再次打开
interrupt void SCIRXINTA_ISR(void)   // SCI-A
{
        unsigned char i;         //ReceivedAChar;
        DINT;//关闭总中断

           // 数据接收
           //temp=SciaRegs.SCIFFRX.bit.RXFIFST;         //数据长度
    for(i=0;i<5;i++)
        {
                Receviced_data = SciaRegs.SCIRXBUF.all;
                //ReceivedAChar = SciaRegs.SCIRXBUF.all;
                //Receviced_data = ReceivedAChar;   //接收串口数据
                Receviced_data = '\0';
        }
          
        flag=1;                                  //表示接受完成
        SciaRegs.SCIFFRX.bit.RXFIFORESET=0;      //将FIFO指针复位为0
        for(i=0;i<20;i++); //延时
        SciaRegs.SCIFFRX.bit.RXFIFORESET=1;      //退出复位状态
           SciaRegs.SCIFFRX.bit.RXFFINTCLR = 1;   // 清除接收中断标志
    SciaRegs.SCIFFRX.bit.RXOVF_CLR = 1;      //清除溢出中断标志
        PieCtrl.PIEACK.all |= M_INT9;            //响应中断
        EINT;   //开总中断
}

asas1235813 发表于 2013-8-16 09:15

zhangmangui 发表于 2013-8-16 09:11 static/image/common/back.gif
像这样就可以再次打开
interrupt void SCIRXINTA_ISR(void)   // SCI-A
{


原来是这样,懂了,嘿嘿菜鸟一枚 多谢版主解答 :lol

zhangmangui 发表于 2013-8-16 10:09

asas1235813 发表于 2013-8-16 09:15 static/image/common/back.gif
原来是这样,懂了,嘿嘿菜鸟一枚 多谢版主解答

共同进步   相互帮助
页: [1]
查看完整版本: 为什么DSP程序每次进入中断之后需要再开全局中断???