本帖最后由 lcl4518 于 2014-9-23 17:44 编辑
我把400线的光电编码器直接接入单片机的两个中断口P3.2和P3.3,在计数时发现不准确,当数值为0时我左右旋转编码器一定距离后数值总是不能回到原点,不是增加就是减少,下边是我再中断里简单写的程序。请问坛子里的高手有没有成功的案例或去抖程序分享一下呢?谢谢!感激不尽!!
两个中断都是下降沿触发
void InterruptA()interrupt 0
{
if(BMQ_B==1)
{
DIR=1;
}
else
if(BMQ_B==0)
{
DIR=2;
}
}
void InterruptB()interrupt 2
{
if(DIR==1&&BMQ_A==0)
{
LCMStruct.InterruptCount++;
DIR=0;
}
if(DIR==2&&BMQ_A==1)
{
LCMStruct.InterruptCount--;
DIR=0;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
正常波形,你要闭环控制的话驱动机构会反向伺服补偿的
一周热门 更多>