比如你想生成的PWM的时钟信号频率为10K,然后你就可以利用10K的PWM时钟源计数生成周期为(1~4095)*(1/10000)的PWM波形了。
其实再次修改程序,你还可以计算PWM周期计数器与高电平相关的值。。
其他不多说,想要更好的,嘿嘿,打赏一下,我继续更。甚至做成一个小软件形式。
目前提供Lua脚本的
- function get(my)
- --这个是选择系统的时钟源,这里默认选择内置的24M时钟HIRC
- Fhirc=24000000
- --下面几个变量都是临时变量使用,初始化多少都行
- 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
- end
- end
- get(10000)
发现有两组参数可以满足需求
pre=16.0CKDIV=75
pre=8.0CKDIV=150
|