Re: dsPIC30f4011 輸入捕捉轉速換算
|
||||
---|---|---|---|---|
新會員
|
我有一個問題,使用capture時假設已經先把timer的prescaler設到8,可以讀到最小轉頻為50Hz
那如果轉頻越來越小最後停下來...有甚麼方法可以知道這件事情嗎? 因為依照現在的範例程式,一但轉頻越來越小讀到的數值就會開始不正確 一但轉頻停下來LCD上顯示的數值也是不正確的,要怎樣才可以讓他顯示為0呢? 謝謝~~
發表於: 2009/9/25 0:21
|
|||
|
Re: dsPIC30f4011 輸入捕捉轉速換算
|
||||
---|---|---|---|---|
版主
|
參照:
發表於: 2009/8/21 12:12
|
|||
|
dsPIC30f4011 輸入捕捉轉速換算
|
||||
---|---|---|---|---|
新會員
|
版主你好,我要用capture功能偵測風力裝置的轉速(hall sensor),以下是RTC捕捉練習的程式、LCD螢幕以us顯示週期
while(!Int_flag); Int_flag = 0; while(!Int_flag); DisableIntIC8; Int_flag = 0; . . . if( timer_edge[1] >= timer_edge[0]) period = timer_edge[1] - timer_edge[0]; else period = 65536 + timer_edge[1] - timer_edge[0]; period = period / 1.843200 ; //FCY=7372800/4 Show_Rpm_LCD(); (1)問題一 如果旋轉一圈有10個pulse(假設為10Hz方波),依照這個時間差值算法,實際週期=100ms,timer_edge[1] - timer_edge[0]之值應該要184320,但是已經超過暫存器MAX了,我是不是應該將震盪頻率再調低一點符合差值小於65536? (2)問題二 period暫存器不容許小於1的數值嗎?以上式FCY用1.8432當除數是不是為了避免period/FCY 之後值小於1的問題? (3)問題三 我要將運算出來的period用LCD顯示(轉ASCII code),是不是一定要先符合問題2的狀況才能做轉換? 我有試過拿磁鐵在hall sensor上面移動,我移動的頻率大約為2Hz,但是顯示出來的週期差異很大(0~4XXX us),因為很多觀念不確定,也不清楚它到底在顯示什麼。 問題有點多,有勞各位幫幫小弟了,真的很想弄懂~謝謝
發表於: 2009/8/19 16:51
|
|||
|