unsigned char HallCounter_temp=0;
ClrWdt();
if((1==g_StatusFlag.MotorSWFlag)&&(0==g_StatusFlag.HallFlag))
{
g_StatusFlag.HallLevel=PORTDbits.RD6;
g_StatusFlag.HallFlag
= 1;
}
else if(( g_StatusFlag.HallLevel!=PORTDbits.RD6)&&(1==g_StatusFlag.HallFlag ))
{
g_StatusFlag.HallCounter ++;
g_StatusFlag.HallFlag
= 0;
}
HallCounter_temp = g_StatusFlag.HallCounter;
if(250==g_StatusFlag.HallCounter)
{
g_StatusFlag.HallTimers++;
g_StatusFlag.HallCounter=0;
}
ClrWdt();
return HallCounter_temp ;
用地线去碰那个输入端,发现g_StatusFlag.HallCounter数字增加的特别快,有时候一下从0X21增加到0X31了,是手抖动的问题吗?现在还没上电机调试,不知道实际的跟我自己模拟是否一样?大家帮我看看程序,谢谢了。 |