如何使用Lua编写程序来计算ML51 MCU的PWM时钟源?

例如,您要生成的PWM时钟信号频率为10K,然后可以使用10K PWM时钟源进行计数,以生成周期为(1〜4095)*(1/10000)的PWM波形。

实际上,再次修改程序,您还可以计算与高电平有关的PWM周期计数器的值。

当前提供了Lua脚本的functionget(my)-这是选择系统时钟源,这里默认选择内置的24M时钟HIRCFhirc = 24000000-以下变量用作临时变量,任何初始化都可以完成CKDIV = 0Fsys = 0pre = 1Fpwm = 0i = 0 CKDIV = 0,255dofori = 0,7dopre = 2 ^ iif(CKDIV == 0)nFsys = Fhircelseif((CKDIV> 0)和(CKDIV发现有两组参数可以满足需要的条件pre = 16.0CKDIV = 75pre = 8.0CKDIV = 150CKDIV在这里,选择内部RC振荡器的分频CKDIV = 75; PWM0_ClockSource(PWM_FSYS,16);或CKDIV = 150; PWM0_ClockSource(PWM_FSYS,8); functionget(my)-这是选择系统默认时钟源是内置的24M时钟HIRCFhirc = 24000000-以下变量用作临时变量,可以尽可能地初始化CKDIV = 0Fsys = 0pre = 1Fpwm = 0i = 0 for CKDIV = 0,255dofori = 0,7dopre = 2 ^ iif(CKDIV == 0)thenFsys = Fhircelseif((CKDIV> 0)and(CKDIVPWM时钟频率为10000Hz,y您需要设置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 ---------------- ------ ------------- 20000Hz的PWM时钟频率需要设置为pre = 8.0,CKDIV = 75 20000Hz的PWM时钟频率需要设置为pre = 4.0,CKDIV = 150END :大师演讲:用Lua编写程序来计算ML51微控制器的PWM时钟源。

文章来源:[微信公众号:嵌入式ARM]欢迎大家关注!请指出转载本章的来源。