比如你想生成的PWM的時(shí)鐘信號(hào)頻率為10K,然后你就可以利用10K的PWM時(shí)鐘源計(jì)數(shù)生成周期為(1~4095)*(1/10000)的PWM波形了。
其實(shí)再次修改程序,你還可以計(jì)算PWM周期計(jì)數(shù)器與高電平相關(guān)的值。
目前提供Lua腳本的
function get(my)--這個(gè)是選擇系統(tǒng)的時(shí)鐘源,這里默認(rèn)選擇內(nèi)置的24M時(shí)鐘HIRC Fhirc=24000000--下面幾個(gè)變量都是臨時(shí)變量使用,初始化多少都行 CKDIV=0 Fsys=0 pre=1 Fpwm=0 i=0 for CKDIV=0,255 do for i=0,7 do pre=2^i if(CKDIV==0) then Fsys=Fhirc elseif((CKDIV>0)and(CKDIV<=0xFF)) then Fsys=Fhirc/(2*CKDIV) end Fpwm=Fsys/pre if(my==Fpwm) then print("pre="..pre.."CKDIV="..CKDIV) end end endend get(10000)?
發(fā)現(xiàn)有兩組參數(shù)可以滿(mǎn)足需求
pre=16.0CKDIV=75
pre=8.0CKDIV=150
CKDIV是這里,選擇內(nèi)部的RC振蕩器后的分頻
CKDIV = 75; PWM0_ClockSource(PWM_FSYS,16); 或者 CKDIV = 150; PWM0_ClockSource(PWM_FSYS,8);
function get(my)--這個(gè)是選擇系統(tǒng)的時(shí)鐘源,這里默認(rèn)選擇內(nèi)置的24M時(shí)鐘HIRC Fhirc=24000000--下面幾個(gè)變量都是臨時(shí)變量使用,初始化多少都行 CKDIV=0 Fsys=0 pre=1 Fpwm=0 i=0 for CKDIV=0,255 do for i=0,7 do pre=2^i if(CKDIV==0) then Fsys=Fhirc elseif((CKDIV>0)and(CKDIV<=0xFF)) then Fsys=Fhirc/(2*CKDIV) end Fpwm=Fsys/pre if(my==Fpwm) then print("PWM時(shí)鐘頻率為"..my.."Hz".." 需要設(shè)置".."pre="..pre..", CKDIV="..CKDIV) end end endend get(10000)print("-----------------------------------")get(15000)print("-----------------------------------")get(20000)? 優(yōu)化了一下顯示形式,輸出結(jié)果,可以看出為了達(dá)到某個(gè)結(jié)果,實(shí)際上可以通過(guò)多組分頻組合實(shí)現(xiàn)。??
PWM時(shí)鐘頻率為10000Hz 需要設(shè)置pre=16.0, CKDIV=75PWM時(shí)鐘頻率為10000Hz 需要設(shè)置pre=8.0, CKDIV=150-----------------------------------PWM時(shí)鐘頻率為15000Hz 需要設(shè)置pre=32.0, CKDIV=25PWM時(shí)鐘頻率為15000Hz 需要設(shè)置pre=16.0, CKDIV=50PWM時(shí)鐘頻率為15000Hz 需要設(shè)置pre=8.0, CKDIV=100PWM時(shí)鐘頻率為15000Hz 需要設(shè)置pre=4.0, CKDIV=200-----------------------------------PWM時(shí)鐘頻率為20000Hz 需要設(shè)置pre=8.0, CKDIV=75PWM時(shí)鐘頻率為20000Hz 需要設(shè)置pre=4.0, CKDIV=150 END 本文系21ic論壇藍(lán)V作者gaoyang9992006原創(chuàng)
原文標(biāo)題:高手雜談:用Lua編寫(xiě)計(jì)算ML51單片機(jī)PWM時(shí)鐘源的程序
文章出處:【微信公眾號(hào):嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
責(zé)任編輯:haq
-
單片機(jī)
+關(guān)注
關(guān)注
6040文章
44594瀏覽量
636941 -
PWM
+關(guān)注
關(guān)注
114文章
5196瀏覽量
214373 -
Lua
+關(guān)注
關(guān)注
0文章
81瀏覽量
10572
原文標(biāo)題:高手雜談:用Lua編寫(xiě)計(jì)算ML51單片機(jī)PWM時(shí)鐘源的程序
文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論