作者LinFeiFun (林飞帆)
看板Electronics
标题[问题] CCS studio 处理 光学尺计数暂存器问题
时间Wed Jul 8 23:55:32 2015
目前我用DSP在作线性音圈马达位置控制
平台是用CCS
目前遇到一个问题 使用eQEP模组 也就是专门处理马达位置光学尺模组
其中有一个暂存器是专门计数的
那个暂存器我们可以把它清为0
所以我把马达移到平台的中间 然後把暂存器清为0
但是这个光学尺计数它只会做++跟--的动作
也就是马达往正向它会++反向会--
但如果在0的马达运动负方向的时候它又会直接跳到最大值(这个最大值是自己设的)
原因是因为内部暂存器是1跟0在储存 在原点00000000000000000 往负向移动时
也就是作-1动昨的时候却又会变成11111111111111111(最大值)
但是我要怎样把1111111111111111变成负号让他知道马达从0往负向
可以正确从-1 -2 .....~......~-xxxxxx
简单来说我目前的状况就是
←(--)反向运动 马达原点 正向运动(++)→
目前 1 2 3~100 0 1 2 3~100
我想要的 -100~-3 -2 -1 0 1 2 3~100
是不是要从二的补数这方面下手
有没有人作encoder遇到这方面的问题过?
感谢大大提点
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.230.22.56
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1436370935.A.01F.html
1F:→ kdjf: 把MAX设成两倍,抓到的资料-中点 07/09 12:34
2F:→ kdjf: 如果是2'c的话, 11111111本来就是-1了 07/09 12:35
3F:推 beggerchou: short int range -32768~32767 07/09 20:46
4F:→ beggerchou: 宣告short int存值就好 07/09 20:48