标题:
旋转编码器为什么顺时针转动正常,逆时针转动有问题?
[打印本页]
作者:
13120735872
时间:
2017-2-8 08:21
标题:
旋转编码器为什么顺时针转动正常,逆时针转动有问题?
//编码器中断,下降沿触发
void INT1_interrupt(void) interrupt 2 using 0
{
DelayUS(10);
if(P3^3 == 0) //INT1引脚
{
DelayUS(10);
if(P3^3 == 0)
{
DelayUS(10);
if(P3^3 == 0)
{
DelayUS(10);
if((CS_KEY2 & 0x10) == 0x00)//第5引脚低电平
{
DelayUS(10);
if((CS_KEY2 & 0x10) == 0x00)
{
DelayUS(10);
if((CS_KEY2 & 0x10) == 0x00)
{
if(g_bLeft_Rigth_flg == 0)
{
g_bLeft_Rigth_flg = 1;
}
else
{
//编码器向右旋转,+
EX1 = 0;
INC_Function();
}
}
}
}
else
{
DelayUS(10);
if((CS_KEY2 & 0x10) == 0x10) //第5引脚高电平
{
DelayUS(10);
if((CS_KEY2 & 0x10) == 0x10)
{
if(g_bLeft_Rigth_flg == 1)
{
g_bLeft_Rigth_flg = 0;
}
else
{
//编码器向左旋转,-
EX1 = 0;
DEC_Function();
}
}
}
}
}
}
}
作者:
13120735872
时间:
2017-2-8 08:23
原理图
IMG_20170207_171637.jpg.JPG
(5.79 KB, 下载次数: 135)
下载附件
2017-2-8 08:23 上传
作者:
mlx
时间:
2017-2-9 09:33
路过看看
作者:
w1179benp
时间:
2017-2-9 10:13
图太小,看不清楚。如果是类似EC11式的编码器,那触发输入端应该是A\B两个脉冲端子(C接地),看你程序有P3^3,但没见另一端子的程序,可以检查下看看。
作者:
utzuzu
时间:
2017-2-15 16:56
这程序写的简直了。。 花括号都数不清。。 你进了中断之后直接判断编码器另一个信号脚,高电平和低电平表示2个方向,直接标志一下方向就行了。 消抖做的太过头了。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1