Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3634

MSP430G2553 測量頻率問題

$
0
0

測量頻率問題;找不出原因.....請大家幫我除錯 我找不到BUG

這個code是參考網路上大家用msp430g2553量測頻率的方法;外加顯示在LCD身上;我的偵測頻率是0~266HZ

因此我用了兩個中斷源; 一個是TIMER 計時1.2秒鐘 一秒鐘執行讀取訊號值 1.0~1.2秒(0.2)秒的時間執行閃爍LCD一次 顯示抓到頻率值

另一個TIMER則是 採用continues mode & capture mode 捕捉訊號 每32.768ms

偵測觸發上源訊號兩次第一次將continues Timer Value清除為0

                     第二次 偵測 continues Timer Value 為多少

第二次減去第一次時間差則為偵測到的頻率訊號 時間大小;若溢位則count_clock+1  公式如流程圖下面;

問題1. clock 準確度不準 計時器65536溢位 我用邏輯分析儀觀察的到約 33ms大小的時間 修正後每個clock 為0.508314us 但實際上 設定為0.5us

問題2. 兩個中斷源衝突會發生什麼事?  計算時間1秒的中斷源是每80us 中斷一次 而在中斷80us 每0.5us 又要中斷訊號去偵測上源頻率訊號 發現中斷源有重疊;

問題3.看似有問題 但我的程式可以執行 45HZ~266HZ以上看起來誤差值不多: 但45HZ以下頻率完全不准 甚至有很大的問題

          我推測30HZ以下就會有問題 因為看似0~65536(0~32.768ms == 0-30HZ)這個兩次計算時間差的計數器好像問題不大

但有誤差 且數據可以參考但超過65536訊號溢位的值不但沒有參考性且是亂數 好比偵測 同個1HZ大小頻率 卻會跳出4HZ或8HZ 且counter 溢位值

         每次都不同且有很大差距;我懷疑問題是出在這裡; 這問題困擾我很久 這個程式設計目前是規劃偵測1~266HZ 超過1秒(1HZ)以下的訊號直接濾掉

         由程式直接顯示0

問題4. 若不用中斷源當Timer 計數一秒 程式上有什麼寫法? 請給我個範例 謝謝 

請高手幫幫我吧.....

以下是我的流程圖:

流程圖

附上專案資料夾:

(请访问站点以查看此文件)


Viewing all articles
Browse latest Browse all 3634

Trending Articles