编码器数据溢出处理
思想:溢出两种形式向前溢出。比如从65535到2,数据溢出了,此时调用del_correct得到(2-65535)+65536=3;另一种形式向后溢出。比如从2到65535数据溢出了,此时调用del_correct得到(65535-2)-65536=-3.而一般情况下电机的位置差值不会超过32768,故-32768-32768是正常区间不用进行处理+0即可。
// An highlighted block
ENCx->encAlter = del_correct(ENCx->encNow - ENCx->encLast);
static int del_correct(int del)//编码器计数溢出处理
{
del += del < -32768 ? 65536 : 0;
del += del > 32768 ? -65536 : 0;
return del;
}