findway1111:
感谢!有个小bug就是连续左右转动,偶尔会出现无法判定方向,是因为只有一边连续触发两次电平翻转, 如A触发一次高电平后超时,A再次触低电平,后面B相才触发一次高电平,完美错开了,无法进入"if(Encoder_A_FilterValue == Encoder_B_FilterValue)",需要再判定下else[code=csharp] if (now_A_FilterValue != ENCODER_A_RAW_VALUE) // 值有变化,非初始值
{
if (now_B_FilterValue == now_A_FilterValue)
{
Encoder_Set_DirDec();
}
Encoder_Clear_FilterValue();
Encoder_Clear_Timeout();
}
else
{
// 清空Afiter
// 清空A超时
}
//同理A相也处理下就好多了
[/code]