|
SPWM波的定義和生成方法在這里就不多說了,本文主要說SPWM波在單片機(jī)上的實現(xiàn),以及如何調(diào)節(jié)濾出后的正弦波的頻率及幅度。
先弄清楚SPWM在單片機(jī)上如何產(chǎn)生,比如你要輸出100HZ的SPWM正弦波,每個周期100個點,則定時器B的中斷頻率為100*100=10K,用于載波(定時器A)的PWM頻率應(yīng)>=10K(這里我建議載波為1M,因為定時器的配合問題會有+-1的誤差,所以載波盡量的大則濾出的正弦波的波形越好)。
通過軟件,你先得到100個點的正弦波采樣值,你可以用定時器A來產(chǎn)生1MHZ的PWM,然后用定時器B,做定時器中斷,10KHZ的頻率,每次中斷,就把一個采樣值賦值給定時器A的輸出通道:CCRx。然后不停的循環(huán),每中斷一百次,就輸出1個波。不停的循環(huán)就不停的輸出,那么PWM輸出端,經(jīng)過濾波后(外部濾波電路要找相關(guān)電路去設(shè)計),就是100HZ的正弦波了。
調(diào)節(jié)頻率要通過定時器B,公式:正弦波頻率*每個周期的點數(shù)=定時器B中斷頻率
調(diào)節(jié)幅度要依據(jù)載波中最大與最小占空比之差也即是調(diào)制深度,這個沒有公式……..
剩下的就要參考我給出的程序作出自己的理解吧,靠你們了,騷年們!
單片機(jī)源程序如下:
所有資料51hei提供下載:
SPWM_01.zip
(65.89 KB, 下載次數(shù): 105)
2018-3-12 21:17 上傳
點擊文件名下載附件
SPWM波
|
|