作者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/m.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