查看: 3838|回复: 2

[原创] [我为LPC代言] 实验四 LPC824的2路PWM实验

[复制链接]
  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
    发表于 2016-12-18 20:42:00 | 显示全部楼层 |阅读模式
    实验四 LPC824的2路PWM实验
    此次实验开始,简化MBED实例,不打印出来,直接分析应用。所有程序是按照实验三的增加和改动为主,少有大的变动的。
    打开PwmOut.h,上边实例定义led,我们直接定义PWM0,PWM1
    在增加adc实例对象的下边增加:
    PwmOut pwm0(P0_0);
    PwmOut pwm1(P0_1);
    用P0_0,P0_1GPIO口作为PWM输出,原因是我设计的板子这两个口在电源一边,连接LED简单。
    下边编写一个函数,设置GPIO的函数,以后凡是与IO设置有关的都放在这里:
    void ioInit(void){
    pwm0.period(0.002f);//pwm0周期
    pwm1.period(0.001f);//pwm1周期
    }
    实例看PWM数据也是浮点数0~1,我们设计2个变量:
    dut0,dut1,ddt0=0.005f,ddt1=0.01f,将这4个变量写到val1的后边,dut0,dut1表示PWM周期,ddt0,ddt1表示周期变化增量。pwm0和pwm1是对象,不能直接参与运算!
    这样在主函数的循环体内增加:
    if(dut0>0.810f){dut0=0.150f;}
    dut0 +=ddt0;pwm0=dut0;
    if(dut1>0.950f){dut1=0.050f;}
    dut1 +=ddt1;pwm1=dut1;
    再在dispBase中增加:
    c2l(0,3,25);c2l(1,3,32);c2l(2,3,1);//PW0
    c2l(8,3,25);c2l(9,3,32);c2l(10,3,2);//PW1
    在dispMes中增加:
    c2l(4,3,int((dut0*10))%10);c2l(5,3,int((dut0*100))%10);c2l(6,3,int((dut0*1000))%10);
    c2l(12,3,int((dut1*10))%10);c2l(13,3,int((dut1*100))%10);c2l(14,3,int((dut1*1000))%10);
    显示3位就够了。又隔了一行显示,肯定将来有用的。编译下载后结果见照片图41。其中的大个LED是双向红绿LED,因为两路PWM周期不一样,会形成红绿交渐亮暗的。
    为了检验程序运行结果,我们还在dispBase的第一行增加程序计数器js:
    c2l(0,0,19);c2l(1,0,28);//JS
    在变量中增加了新变量js,因为可能计数很多,采用了32位数:
    int32_t js;
    在dispMes中增加一行:
    c2l(3,0,(js/100000)%10);c2l(4,0,(js/10000)%10);c2l(5,0,(js/1000)%10);c2l(6,0,(js/100)%10);c2l(7,0,(js/10)%10);c2l(8,0,(js)%10);
    在main循环语句中增加:js++;
    结果见照片图42。

    41-2路PWM

    41-2路PWM

    42-增加了程序计数器

    42-增加了程序计数器
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-9-13 10:15
  • 签到天数: 35 天

    连续签到: 1 天

    [LV.5]常住居民I

    13

    主题

    500

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1183
    最后登录
    2024-12-10
    发表于 2017-11-29 19:35:49 | 显示全部楼层
    楼主用的哪个库?给个名字
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-14 16:49
  • 签到天数: 296 天

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
     楼主| 发表于 2017-11-30 09:19:11 | 显示全部楼层
    jiang887786 发表于 2017-11-29 19:35
    楼主用的哪个库?给个名字

    您好!没有用STM的库,用的是ARMmbed工程。谢谢
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-10 11:06 , Processed in 0.089966 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表