查看: 2534|回复: 1

[原创] 【LPC54114之5定时器PWM呼吸灯】

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

    [LV.1]初来乍到

    91

    主题

    2930

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    7815
    最后登录
    2024-4-29
    发表于 2017-5-7 18:30:42 | 显示全部楼层 |阅读模式
    本篇测试定时器的PWM功能,通过示波器观察占空比的变化不是很明显,所以做了一个呼吸灯。这个功能使用基本的定时器Ctimer就可以。在程序的开发过程中,第一步还是要先产生PWM信号,通过示波器能够观察到,第二步才是不断的修改占空比,来达到呼吸灯的效果。
    闲言少叙,还是说说如何实现吧。
    首先初始化引脚,要使用引脚的复用功能,如图1所示:
    1. /* Ctimer0 Match 1; Red LED pin */
    2.     IOCON_PinMuxSet(IOCON, 0, 29, IOCON_MODE_INACT | IOCON_FUNC7 | IOCON_DIGITAL_EN | IOCON_INPFILT_OFF);
    复制代码

    再次初始化时钟,初始化定时器,如图2所示:
    1. void PWMchang(uint8_t pwmduty)
    2. {
    3.                    ctimer_config_t config;
    4.     uint32_t srcClock_Hz;
    5.          /* CTimer0 counter uses the AHB clock, some CTimer1 modules use the Aysnc clock */
    6.     srcClock_Hz = CLOCK_GetFreq(kCLOCK_BusClk);
    7.     CTIMER_GetDefaultConfig(&config);

    8.     CTIMER_Init(CTIMER0, &config);
    9.     CTIMER_SetupPwm(CTIMER0, kCTIMER_Match_1, pwmduty, 1000, srcClock_Hz, false);
    10.     CTIMER_StartTimer(CTIMER0);       
    11. }
    复制代码

    while循环中实现不断改变信号的占空比,如图3所示:
    1. duty-=1;
    2.                                 CTIMER_SetupPwm(CTIMER0, kCTIMER_Match_1, duty, 1000, srcClock_Hz, false);
    3. //                                PWMchang(duty);
    4.         Delay_nms(0xAFFFF);
    5. //                                Delay_nms(0xAFFFF);
    6. //                                Delay_nms(0xAFFFF);
    7.         if(duty<=80)
    8.         flag=0;                       
    复制代码

    最后效果如图4所示:



    图4

    图4
    加油哦
    回复

    使用道具 举报

  • TA的每日心情

    2021-1-28 20:09
  • 签到天数: 317 天

    [LV.8]以坛为家I

    61

    主题

    1582

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    8055
    最后登录
    2022-5-12
    发表于 2017-6-24 12:13:43 | 显示全部楼层
    工程传上来看看
    好好
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2024-4-30 03:08 , Processed in 0.132930 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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