受芳季的启发,我想了一个绝对型转增量型计数的方法,诸位看看是否行得通:

前提条件也是两次处理之间编码器没有转过半圈以上。那么当前值在过去值的正负半圈范围内(B、C区)才是合理值,若超出此范围(A、D区),应加减一圈数值(周期)调整至合理范围。
示意程序如下:
network 1
ld sm0.0
movw 当前值,ac0
-I 过去值,ac0 //AC0=当前值-过去值
network 2
// 超出上界调整
ldw< 半圈数,ac0 // 10位编码器就是512
-I 整圈数,AC0 // 10位编码器就是1024
network 3
// 超出下界调整
ldw>= -半圈数,ac0 // 10位编码器就是-512
+I 整圈数,ac0 // 10位编码器就是1024
network 4
// AC0中存有本次计算的增量,加到总计数器中
ld sm0.0
ITD ac0,ac0 // 转成32位长整数,和高速计数一样
+D ac0,总量计数