2019-12-16 22:35发布
brumby 发表于 2015-11-18 14:11 计数值溢出了吧? 应该还有个处理的,在毫秒中断中比较计数器的值(上次和本次的值),推断编码器的方向, ...
最多设置5个标签!
这个考虑过了,我计数到60000是重新装载的,EncoderConfig(TIM2, 60000, 1);
下面是得到一个编码器的值的过程
NextCnt = TIM_GetCounter(TIM2);
Cnt = NextCnt - LastCH1Cnt;
if(Cnt>30000)
{
Cnt -= 60000;
}
else if(Cnt<-30000)
{
Cnt += 60000;
}
LastCH1Cnt = NextCnt;
CH1EncoderCnt += Cnt;
一周热门 更多>