高手杂谈:用Lua编写计算ML51单片机PWM时钟源的程序
Posted 嵌入式ARM
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高手杂谈:用Lua编写计算ML51单片机PWM时钟源的程序相关的知识,希望对你有一定的参考价值。
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
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("PWM时钟频率为"..my.."Hz".." 需要设置".."pre="..pre..", CKDIV="..CKDIV)
end
end
end
end
get(10000)
print("-----------------------------------")
get(15000)
print("-----------------------------------")
get(20000)
PWM时钟频率为10000Hz 需要设置pre=16.0, CKDIV=75
PWM时钟频率为10000Hz 需要设置pre=8.0, CKDIV=150
-----------------------------------
PWM时钟频率为15000Hz 需要设置pre=32.0, CKDIV=25
PWM时钟频率为15000Hz 需要设置pre=16.0, CKDIV=50
PWM时钟频率为15000Hz 需要设置pre=8.0, CKDIV=100
PWM时钟频率为15000Hz 需要设置pre=4.0, CKDIV=200
-----------------------------------
PWM时钟频率为20000Hz 需要设置pre=8.0, CKDIV=75
PWM时钟频率为20000Hz 需要设置pre=4.0, CKDIV=150
以上是关于高手杂谈:用Lua编写计算ML51单片机PWM时钟源的程序的主要内容,如果未能解决你的问题,请参考以下文章