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