手把手教你学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引脚不会发生改变,请问该如何实现呢
此帖出自
小平头技术问答
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++;
}
这样可以吗 我试了下好像还是有问题
一周热门 更多>