本帖最后由 dfbb123wef 于 2020-9-27 09:03 编辑
用n76e003 控制 一个 直流电机出现怪事 程序简单描述如下
if(a){//如果有串口接收就运行以下程序
if(x>b){
f1();//这里放电机正转
while(1)
if(x<b)break;//电机已经转到位了
}else {
f2();/这里放/电机反转
while(1)
if(x>b)break;//电机已经转到位了
}
f3();//这里放电机停止程序
}
x为串口输入产生,b为编码器数值,由 200us的定时器 通过检测A,B线 加加减减产生
现在问题是有一定概率电机没转到x处就停了,为什么?
我把if(x<b)break; 改为if(x<b)if(x<b)break; if(x>b)break; 改为if(x>b)if(x>b)break;
就正常了,谁能帮我分析下,谢谢!!
|