一个转盘,每转一圈为固定脉冲量,采用高速计数器读取这个脉冲量。转盘上有1个光纤传感器,采用硬件中断读取传感器的信号。转盘上放一个产品,每经过传感器就有1次信号,每有一次信号我就截取有信号的脉冲量,按理来说这个截取的脉冲值的相差值应该是固定的76000,或者10几个脉冲波动误差吧,但是却有±60个脉冲差。我测试过一个产品经过一次传感器从上升沿到下降沿时间在150-160ms,脉冲值在1200左右,所以±60的脉冲差不多有7ms。
我当时认为可能是传感器的误差,于是我又测试了取截取的脉冲值的再加一个相对值,通过高速计数器中断取值,可是这个差值是在传感器的差值上的波动再累加波动,波动到了±110左右了。
然后我不采用这个中断的方式,结果也差不多是这个差值,程序的循环时间是在6-8ms。
所以我现在完全不确定到底是软件问题还是硬件问题,软件问题的话确实是在中断OB里面执行的,所以我现在已经搞不懂了。