0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用Lua编写计算ML51单片机PWM时钟源的程序?

Q4MP_gh_c472c21 来源:嵌入式ARM 作者:嵌入式ARM 2021-01-26 09:57 次阅读

比如你想生成的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 endend get(10000) 

37d916b0-5f63-11eb-8b86-12bb97331649.png

发现有两组参数可以满足需求
pre=16.0CKDIV=75
pre=8.0CKDIV=150

384e5d26-5f63-11eb-8b86-12bb97331649.png

CKDIV是这里,选择内部的RC振荡器后的分频

38bb5f48-5f63-11eb-8b86-12bb97331649.png

CKDIV = 75; PWM0_ClockSource(PWM_FSYS,16); 或者 CKDIV = 150; PWM0_ClockSource(PWM_FSYS,8);

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 endend get(10000)print("-----------------------------------")get(15000)print("-----------------------------------")get(20000)  优化了一下显示形式,输出结果,可以看出为了达到某个结果,实际上可以通过多组分频组合实现。  

PWM时钟频率为10000Hz 需要设置pre=16.0, CKDIV=75PWM时钟频率为10000Hz 需要设置pre=8.0, CKDIV=150-----------------------------------PWM时钟频率为15000Hz 需要设置pre=32.0, CKDIV=25PWM时钟频率为15000Hz 需要设置pre=16.0, CKDIV=50PWM时钟频率为15000Hz 需要设置pre=8.0, CKDIV=100PWM时钟频率为15000Hz 需要设置pre=4.0, CKDIV=200-----------------------------------PWM时钟频率为20000Hz 需要设置pre=8.0, CKDIV=75PWM时钟频率为20000Hz 需要设置pre=4.0, CKDIV=150 END 本文系21ic论坛蓝V作者gaoyang9992006原创

原文标题:高手杂谈:用Lua编写计算ML51单片机PWM时钟源的程序

文章出处:【微信公众号:嵌入式ARM】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6001

    文章

    43978

    浏览量

    620871
  • PWM
    PWM
    +关注

    关注

    114

    文章

    4901

    浏览量

    209930
  • Lua
    Lua
    +关注

    关注

    0

    文章

    75

    浏览量

    10444

原文标题:高手杂谈:用Lua编写计算ML51单片机PWM时钟源的程序

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    何用51单片机编写一个时钟程序

    51单片机时钟程序,怎么写代码让才能让蜂鸣器整点报时?
    发表于 10-28 08:29

    基于51单片机PWM波实现拖尾灯的程序

    电子发烧友网站提供《基于51单片机PWM波实现拖尾灯的程序.doc》资料免费下载
    发表于 10-24 10:00 0次下载
    基于<b class='flag-5'>51</b><b class='flag-5'>单片机</b><b class='flag-5'>PWM</b>波实现拖尾灯的<b class='flag-5'>程序</b>

    新唐低功耗 ML51让你远离病毒的接触

    防疫先锋额温枪,采用新唐低功耗 ML51,让你远离病毒的接触
    的头像 发表于 08-21 10:54 451次阅读

    盘点新唐工业级低功耗微控制器:ML51/M251/M261

    盘点新唐工业级低功耗微控制器:ML51/M251/M261
    的头像 发表于 08-11 15:04 516次阅读

    ML51系列单片机P5口不能位寻址,请问有何方便的操作方法?

    之前没想到新唐ML51系列的单片机P5口居然不能位寻址,ML51.H文件中对P5口的定义是: sfr P5= 0xB1;// SFR page 0 这样对P5口中某个单独的IO口进行操作就会特别不方便,造成
    发表于 06-28 08:21

    ML51TC0AE,运行了一段自己编的ADC函数后,单片机就降级了是为什么?

    常是IO口方波频率是正常时的5倍的,有比率是5.5倍的,正符合12T单片机和1T单片机(当然也不是所有指令都是1T)同频处理指令速度之比。请问这个是新唐ML51系列单片机的BUG吗?
    发表于 06-27 07:40

    ML51都可以用作什么?

    ML51都可以用作什么
    发表于 06-25 08:39

    请问ML51睡眠模式能低于1uA吗?

    ML51睡眠模式能低于1uA吗?
    发表于 06-20 06:04

    ML51的ADC有哪些特色?

    ML51的ADC有哪些特色
    发表于 06-19 15:32

    ML51单片机用了ADC,P3.2就不可以作为输入端口了吗?

    ML51单片机,用了ADC,P3.2就不可以作为输入端口了吗? 我发现使能了ADC,包括是其它的通道,比如P2.4,发现P3.2就不可以作为输入端口了吗,是吗?如果不是,是哪里要设置吗? 另外SFRS有什么作用?
    发表于 06-16 08:06

    ML51系列单片机P5口不能位寻址,请问有何方便的操作方法?

    之前没想到新唐ML51系列的单片机P5口居然不能位寻址,ML51.H文件中对P5口的定义是: sfr P5= 0xB1;// SFR page 0 这样对P5口中某个单独的IO口进行操作就会特别不方便,造成
    发表于 06-16 07:16

    ML51低功耗模式下可以使用PWM吗?

    : ML51 simple GPIO toggle out demo code
    发表于 06-15 14:39

    请问ML51程序可以保存多少年?

    ML51程序可以保存多少年?
    发表于 06-14 10:29

    ML51单片机INT1将单片机从掉电模式唤醒后定时器工作不正常怎么解决?

    ML51TC0AE试验板和NuMaker-ML51PC开发板上试验,新唐ML51单片机INT1将单片机从掉电模式唤醒后定时器工作不正常。定
    发表于 06-14 09:14

    基于89C51单片机PWM调光源程序

    基于89C51单片机PWM调光源程序
    发表于 05-16 09:55 5次下载