巧妙利用DMA來實現脈沖累加(Kinetis) | |
所屬分類:參考設計 | |
上傳者:hanqi1236 | |
文檔大?。?span>770 K | |
所需積分:0分積分不夠怎么辦? | |
文檔介紹:Kinetis 系列 只有 一路 LPT 模塊 ,要實現 多路脈沖累加 (不進入中斷服務函數,不占用 CPU 資源),難道就沒方法了嗎?就目前網上公開的資料來看,貌似還沒有公開實現多路脈沖累加的方法吧?都是靠 FTM 的 輸入捕捉 或者 GPIO 的觸發中斷,在中斷函數里進來累加。其實,Kinetis 的DMA模塊,是 可以實現 16路 15位 的 脈沖累加。 完全可以不進入中斷服務函數,由硬件進行累加。徹底解決 Kinetis單片機不能多路脈沖累加的功能 …… 可通過增加個中斷來實現拓展計數位數,幾乎不影響CPU…… 實測 30KHz 的PWM脈沖波 ,用PIT 來 1秒定時,讀取到脈沖波:30012個 ,比 LPT誤差還更小……與 LPT 相比,我們的方法是巧妙借用了 DMA 每次傳輸,會自動減1 的功能 (硬件實現的)而 LPT 則是一個計數器 ,兩種的原理是不一樣的……實測 30KHz 的PWM脈沖波 ,用PIT 來 1秒定時,讀取到脈沖波:30012個 ,比 LPT誤差還更小……函數接口非常方便…… DMA_count_Init 初始化…… DMA_count_get 獲取計數值…… DMA_count_reset 重新計數…… | |
現在下載 | |
VIP會員,AET專家下載不扣分;重復下載不扣分,本人上傳資源不扣分。 |
Copyright ? 2005-2024 華北計算機系統工程研究所版權所有 京ICP備10017138號-2