qep的A、B、I分别接编码器的ABZ信号,三路信号正常,但是s脚悬空。现在调试遇到一个问题,当编码器一直潮一个方向旋转,编码器计数值递增时,状态寄存器qdf位应该等于1,但是当出现索引信号(z信号)时,qdf变为0,索引信号消失后恢复,不知道是什么原因。
HeiHei:
可以看看你初始化代码吗 另外你有没有看一下编码器信号是否正常 是否正交
qep的A、B、I分别接编码器的ABZ信号,三路信号正常,但是s脚悬空。现在调试遇到一个问题,当编码器一直潮一个方向旋转,编码器计数值递增时,状态寄存器qdf位应该等于1,但是当出现索引信号(z信号)时,qdf变为0,索引信号消失后恢复,不知道是什么原因。
Yu Minjie:
回复 HeiHei:
初始化代码就是ti例程pos_speed计算那个,编码器信号正交,计数值都正常
qep的A、B、I分别接编码器的ABZ信号,三路信号正常,但是s脚悬空。现在调试遇到一个问题,当编码器一直潮一个方向旋转,编码器计数值递增时,状态寄存器qdf位应该等于1,但是当出现索引信号(z信号)时,qdf变为0,索引信号消失后恢复,不知道是什么原因。
HeiHei:
回复 Yu Minjie:
你主要用qdf这个标志位来做什么?判断电机转向?还有就是 电机转过z脉冲就是一瞬间的事 你怎么观察qdf标志位的
qep的A、B、I分别接编码器的ABZ信号,三路信号正常,但是s脚悬空。现在调试遇到一个问题,当编码器一直潮一个方向旋转,编码器计数值递增时,状态寄存器qdf位应该等于1,但是当出现索引信号(z信号)时,qdf变为0,索引信号消失后恢复,不知道是什么原因。
Yu Minjie:
回复 HeiHei:
就是来判断转向啊,例程里不也有用它来判断转向然后计算速度吗,只是如果只用来计算速度的话因为z信号是一瞬间的所以影响不大,但是我还要用来计算周长,我就让编码器往一个方向转,那么qdf应该保持1不变,这样长度就可以一直累加,但我在判断qdf等于0的语句设断点发现在z信号时程序会跑过去,其余时间正常。
qep的A、B、I分别接编码器的ABZ信号,三路信号正常,但是s脚悬空。现在调试遇到一个问题,当编码器一直潮一个方向旋转,编码器计数值递增时,状态寄存器qdf位应该等于1,但是当出现索引信号(z信号)时,qdf变为0,索引信号消失后恢复,不知道是什么原因。
HeiHei:
回复 Yu Minjie:
还没遇到过你类似的问题,但是你可以这样来做判断 正向转的时候 本次的值减去上一次的值肯定是正的 ,也就是一个增计数的过程。然后这样配合着qdf来判断