当PDPINT触发时PWM输出引脚为高阻态,该如何在中断函数中拉低为低电平

2019-03-26 15:45发布

手把手教你学DSP  书中介绍PDPINT的时候有提到当PDPINTx输入一个低电平的时候,PWM引脚立刻变为高阻态,同时申请中断。为了保险起见,在中断函数中还是得将引脚电位置为低电平。
我加了这个中断,但是发现高阻态时程序对引脚输出不起改变,请问该如何修改或如何实现呢?
interrupt void PdpISR(void)
{

        EvaRegs.ACTRA.all=0x0000;       
        EvaRegs.EVAIFRC.all=BIT0;       
        PieCtrlRegs.PIEACK.all |= PIEACK_GROUP1;
}

我希望在主程序刚执行的时候PWM输出也全为低电平,所以我加了以下语句
        EALLOW;  
        GpioMuxRegs.GPAMUX.all |= 0x003F;
        EDIS;   
        EvaRegs.ACTRA.all=0x0000;

   while (EnableFlag==FALSE)
    {
      BackTicker++;
    }
但问题是如果前一次运行PDPINT被触发,重新下载程序后运行PWM引脚不会发生改变,请问该如何实现呢 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
Firststep
2019-03-27 01:34
<    // Waiting for enable flag set
        EALLOW;  
        GpioMuxRegs.GPAMUX.all = 0x0000;//设置为通用数字I/O口
        GpioMuxRegs.GPADIR.bit.GPIOA0=1;//设置为输出口
        GpioMuxRegs.GPADIR.bit.GPIOA1=1;
        GpioMuxRegs.GPADIR.bit.GPIOA2=1;
        GpioMuxRegs.GPADIR.bit.GPIOA3=1;
        GpioMuxRegs.GPADIR.bit.GPIOA4=1;
        GpioMuxRegs.GPADIR.bit.GPIOA5=1;
        EDIS;
        GpioDataRegs.GPASET.bit.GPIOA0=1; //设置为低电平   
        GpioDataRegs.GPASET.bit.GPIOA1=1;
        GpioDataRegs.GPASET.bit.GPIOA2=1;
        GpioDataRegs.GPASET.bit.GPIOA3=1;
        GpioDataRegs.GPASET.bit.GPIOA4=1;
        GpioDataRegs.GPASET.bit.GPIOA5=1;

   while (EnableFlag==FALSE)
    {
      BackTicker++;
    }

这样可以吗    我试了下好像还是有问题

一周热门 更多>