主题:controlSUITE中讨论的其他部件
你好
我正在对一些我没有创作的软件做一些持续的工作,这些软件使用2.803万/35的eQEP外设来通过增量编码器进行运动控制
2.8035万使用3个中断,SPI,ADC和 计时器
下面的代码是从ADC ISR调用的。 问题在于编码器无噪音。计数 器sPosFdbk.QuadratureError持续递增,即使未启用此中断
这使我怀疑QFLG.Bit.PHE已被设置,或者清除此位不起作用
我想知道
1)如果代码清除PHE 标志正确?
2)为什么在中断从未启用时设置中断标志(引导加载程序 //禁用并清除所有CPU中断)
//更新位置反馈正交错误计数
如果( EQep1Regs.QFLG.Bit.PHE )
{
sPosFdbk.QuadratureError++;
EQep1Regs.QCLL.ALL = (0x0001 <<2)) ; //清除正交错误标志--使用write代替r-m-w
}
//离开前清除ADC中断
PieCtrlRegs.PIEACK.ALL = M_INT1; //发出PIE ACK
//为StatusUpdateIsr()设置中断标志
PieCtrlRegs.PIEIFR7.bit.INTx1 = BOOL_TRUE;
//于2013年7月12日添加以进行测试
ADcRegs.ADCINTFLGCLL.bit.ADCINT1 =1; //清除ADCINT1标志重新初始化下一个SOC
