本帖最后由 cl234583745 于 2015-1-23 11:11 编辑
电路就是ABK引脚分别接上拉10k电阻vcc,接单片机io口。(不知道是否要加电容接地?)
1.程序如下:没有大的问题,但精度不够总是误判(另一个单片机处理的结果要好的多,区别就是另外的单片机总线时钟慢一些)。后来加了旋转后延时500ms才能反向的处理,精确了一些。但结果还不令我满意。怎么做能达到100%精确呢?不用中断没有那么多引脚,就查询。
2.逻辑分析仪截图如下:为啥有时候长时间为低电平呢?还有跳变的地方很多反复跳了多次后才改变的。
3.还有看到论坛有说出加d触发器。有用吗?能达到100%吗
#define BM_A PTDD_PTDD1#define BM_B PTDD_PTDD0
#define BM_OK PTED_PTED7
//按键状态**
uchar BM_A_B;
uchar BM_B_B;
//正向
for(;;)
{
if(BM_A)
{
if(BM_A_B)
{
if(BM_B)
{
//正向
}
}
BM_A_B=0;
}
else
BM_A_B=1;
//反向
if(BM_B)
{
if(BM_B_B)
{
if(BM_A)
{
//反向
}
}
BM_B_B=0;
}
else BM_B_B=1;
} |