查看: 4965|回复: 1

[原创] [IRD-LPC1768-DEV] 篇三 PWM呼吸灯

[复制链接]
  • TA的每日心情
    开心
    2019-3-5 08:47
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    117

    主题

    3462

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    9242
    最后登录
    2025-10-26
    发表于 2019-2-24 10:16:43 | 显示全部楼层 |阅读模式
          这款芯片的PWM是和Timer分开的,能够看到直观效果的方法就是常用的呼吸灯。参考使用手册,发现基本设置(Basic Configuration),是不是感觉套路感挺强的。很多细节先不用去研究,先能实现想实现的功能就好了。时钟,功率设置,引脚配置,PWM初始化,功能实现。
          按手册说,PWM基于标准的定时器模块并继承了定时器的所有特性,只将PWM功能输出到引脚,它可以对外设时钟PCLK进行计数,可选择产生中断或在出现指定的计数值时执行其他操作。PWM功能是一个附加特性,建立在匹配寄存器的基础之上。两个匹配寄存器可用于提供单边沿控制的PWM输出。可提供单边沿和双边沿控制的PWM输出。
         闲言少叙,在原理图中发现一个可用于PWM控制的LED,USB_UP_LED2,这个引脚的复用功能中有PWM1。如图1所示。
         本次使用单边沿实现,因为外设时钟为25M,设置basic rate 为256,即频率为25M/256,这个频率可以通过示波器观察。当然也可以通过改变basic rate,来改变PWM频率。这里通道1默认为单边沿,可参考使用手册。实现呼吸灯就是不断地改变占空比,实现输出led的明暗的变化。参考代码如图2:

    1. /* Set match value for PWM match channel 0 = 256, update immediately, */
    2.         PWM_MatchUpdate(LPC_PWM1, 0, 256, PWM_MATCH_UPDATE_NOW);//定义了频率25M(pclk)/256
    3.         PWM_MatchUpdate(LPC_PWM1, 1, 100, PWM_MATCH_UPDATE_NOW);
    复制代码

    void PWMValueChange(void)
    { static uint8_t temp=0;
            static uint8_t tempflag =0;

    //        for(uint8_t i=0;i<10;i++)
    //         {
                     PWM_MatchUpdate(LPC_PWM1, 1,temp , PWM_MATCH_UPDATE_NOW);
                     PWM_MatchConfigStruct.MatchChannel = 0;
              PWM_MatchConfigStruct.IntOnMatch   = DISABLE;//TRUE;
              PWM_MatchConfigStruct.ResetOnMatch = ENABLE ;//TRUE;
              PWM_MatchConfigStruct.StopOnMatch  = DISABLE ;//FALSE;
                    PWM_ConfigMatch(LPC_PWM1,&PWM_MatchConfigStruct);
                    PWM_ChannelCmd (LPC_PWM1 ,1,ENABLE);
               if((tempflag==0)&&(temp <240))       
                      temp = temp+10;
    //         }
              else tempflag=1;
                    if((tempflag ==1)&&(temp >10))
                            temp = temp-10;
                    else tempflag =0;
              
    }

        由于最近用手机砸核桃了,都不聚焦了,效果如图3所示:

    图1

    图1

    图2

    图2
    加油哦
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    4 天前
  • 签到天数: 1912 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    203

    主题

    3万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    113339
    最后登录
    2025-10-27
    发表于 2019-2-24 15:44:52 | 显示全部楼层
    本帖最后由 stm1024 于 2019-2-24 15:48 编辑

    支持一下~~~ 1.png 2.png 3.png 4.png 8.png 7.png 6.png 5.png 9.png 10.png
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-10-28 21:47 , Processed in 0.075987 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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