刚入音响这行,就被要求使用旋转编码器,之前都没接触过,所以就去网上找了大量资料,结果好像没找我满意的程序,基本都用上定时或中断的,但我单片机的资源又有限,所以不想用那么复杂,所以还是决定好好研究一下
首先,在编码器上面接上几个LED观察引脚电平的变化顺序,我的正转的时候是11-00-01-11,反转的时候是11-01-00-11,所以区别就是在于中间两个状态
那么我先用两个位定义VA和VB记录当前的状态
中间保证有大概100ms的延时
然后再判断这两个引脚的状态,如果变成00了,只要判断VA和VB的值就可以知道是正转还是反转了
如果是11就是正转,如果是01就是反转
然后中间延时的那部分,我不是用延时程序,而是靠执行其他程序来制造延时,比如显示、红外处理什么,提高程序的效率
经过试验呢,中间的延时是很有必要的,不然会有很多误码
大家也可以试试,这是我自己想出来的办法,别喷哈~~ |