Re: 請問dsPIC的QEI暫存器RPM的運算
|
||||
---|---|---|---|---|
資深會員
|
你的作法我沒試過耶!
不過正反轉看QEICONbits.UPDN即可。 真實的RPM你手邊沒有機器可以測嗎? 人的感覺不準的,拿儀器實測一下比較好^_^
發表於: 2006/3/21 13:57
|
|||
不要問我哪裡來,我只是個流浪天涯的工程師
|
||||
|
Re: 請問dsPIC的QEI暫存器RPM的運算
|
||||
---|---|---|---|---|
新會員
|
我的QEI暫存器設定和範例程式有點點不一樣
我也是設定4倍模式,但我設定當index訊號觸發時,我的POSCNT就會歸零,並不像範例程式所設定的把index觸發歸零的bit disable掉,所以我的POSCNT在馬達正轉時永遠只會在0~8000 但馬達反轉時,POCNT的暫存器會從65536開始往零的方向計數,我透過一個判斷式 if(POSCNT>20000) {POSCNT=POSCNT-57536} 如此使得我的馬達不管在正轉或是反轉POSCNT都介於0~8000,這樣以方便我的程式在判斷我的POSCNT後,便可以輸出正確的電壓向量給我的同步馬達。 我想請問說如果我要計算RPM的話,我令QEI_New=POSCNT 這樣的話,去計算我的馬達轉速RPM這樣出來的RPM值是正確的嗎?? PS:我以這樣的方式去做實驗感覺作出來的RPM數據好像有點 不太對,不知道有沒有高手可以指點我那邊有問題??
發表於: 2006/3/20 23:37
|
|||
|
Re: 請問dsPIC的QEI暫存器RPM的運算
|
||||
---|---|---|---|---|
資深會員
|
RPM=((long)QEI_Diff*600/(2000*4))
一圈有2000pluse,所以一圈後的QEI在4倍編碼設定下應該是2000*4=8000
發表於: 2006/3/20 19:30
|
|||
不要問我哪裡來,我只是個流浪天涯的工程師
|
||||
|
Re: 請問dsPIC的QEI暫存器RPM的運算
|
||||
---|---|---|---|---|
新會員
|
那在請問如果知道我的馬達旋轉一圈已經知道有2000個pulse,我的QEI暫存器也是設定4倍模式,那我要計算我的RPM的話是不是把256/4這個數值改成2000/4這樣,若我要正確的運算我馬達的轉速RPM的話我的RPM計算式是不是
RPM=((long)QEI_Diff*600/2000)
發表於: 2006/3/20 15:04
|
|||
|
Re: 請問dsPIC的QEI暫存器RPM的運算
|
||||
---|---|---|---|---|
資深會員
|
參照:
1.是的! 0.1秒更新一次,所以推論一分鐘的count數是QEI_Diff*600。 2.256在這沒什麼意義,書上是設四倍編碼,所以應該是假設真實世界編碼器的Plues數是256/4=64 pluse/cycle。這裡的數值應該要依據你用的Encoder來決定。就是這樣
發表於: 2006/3/20 11:02
|
|||
不要問我哪裡來,我只是個流浪天涯的工程師
|
||||
|
請問dsPIC的QEI暫存器RPM的運算
|
||||
---|---|---|---|---|
新會員
|
請問一下有人知道30F4011這顆dsPIC的暫存器QEI中要如何計算馬達轉速RPM?
我看了一下中文書裡面的範例 RPM=((long)QEI_Diff*600/256) 這是什麼意思阿?? 是因為要配合程式的100ms才更新一次所以*600嗎 那/256是為什麼???
發表於: 2006/3/19 22:50
|
|||
|