我正在編程stm32f2xx的DAC外設。我有一個字節數組(聲音)&我想生成採樣率= 8K的信號。DAC信號發生器stm32
現在我的問題是: 如何指定採樣率?
注: 我GOOGLE了很多。我只使用DMA獲得搖擺波的產生和正弦波的產生。我不想使用DMA。
預先感謝幫助... 問候,
我正在編程stm32f2xx的DAC外設。我有一個字節數組(聲音)&我想生成採樣率= 8K的信號。DAC信號發生器stm32
現在我的問題是: 如何指定採樣率?
注: 我GOOGLE了很多。我只使用DMA獲得搖擺波的產生和正弦波的產生。我不想使用DMA。
預先感謝幫助... 問候,
這是不切合實際的打出來的波形DAC的不使用DMA。您可以使用樣本設置DMA,並將DAC設置爲使用計時器作爲觸發器。然後你設置你的計時器以你想要的採樣率觸發。
我同意TJD的觀點,即在沒有DMA的情況下通常不這樣做,但這並非不可能,特別是在低採樣率下。
可以使用定時器設置觸發每1/8000秒作爲固定時基。從那裏,中斷程序需要將下一個採樣加載到DAC中。採樣率可以通過改變計時器的時基來改變。
與編寫代碼將正確的採樣移入緩衝區相比,編寫代碼來配置DMA控制器的工作類似。但是,DMA方法更可靠,可能在採樣速率上具有較少的抖動,並且釋放內核以執行可能需要的其他代碼。實際上,通過TIM/DMA/DAC設置,您可能會暫停內核或進入保持外設時鐘運行的休眠模式。
是的,我也同意TJD。
使用DMA是有效的,以及釋放CPU爲其他任務[好]。
管理軟件中的時序(帶有繁忙循環的核心)[壞]不會產生好的結果。 (所以,使用計時器進行計時[良好])。
現在用於複製,必須奉獻CPU做複製一個特定的時間間隔後(從繁忙的環或定時器超時)到DAC寄存器。[衰]
在端我建議,連接DMA和定時器,並在超時時,DMA將數據複製到DAC寄存器[良好]。這個解決方案看起來很難,但實際上安裝起來更容易。
[注:寫在pov的人試圖理解/開始這樣的事情]
考慮發佈您的問題在http://electronics.stackexchange.com/ – simon 2012-08-02 14:43:18