查看: 2503|回复: 2

[原创] 【KL27 mini Board开发】4.SDK定时器呼吸灯

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

    连续签到: 1 天

    [LV.1]初来乍到

    110

    主题

    3404

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    9004
    最后登录
    2025-7-20
    发表于 2016-4-4 20:39:45 | 显示全部楼层 |阅读模式
    本帖最后由 jundao721 于 2016-4-4 20:44 编辑

    看文档的时候会注意到,一般常用的定时器有两种,一种带PWM的普通定时器,一种是低功耗定时器LPTIMER。就从SDK移植来说,普通定时器还是需要动点脑筋。因为在配置上有一些需要特别注意的地方。首先呢,承袭原来的套路,keil5建立工程,加载文件,配置环境,这些在前面都说过了。主要来讲讲定时器的应用,做个简单的呼吸灯。主要是有几个文件需要修改。第一个当然是硬件初始化hardware_init.c文件。除了引脚时钟,需要添加以下两句。
    1. configure_tpm_pins(2U);
    2.         CLOCK_SYS_SetTpmSrc(2u, kClockTpmSrcIrc48M);
    复制代码
    从函数命名中就知道配置定时器外设引脚和设置定时器时钟。从而需要修改配置定时器引脚文件pin_mux.c.
    1.   PORT_HAL_SetMuxMode(PORTA,2u,kPortMuxAlt3);
    复制代码
    现在可以写main函数了。添加定时器驱动文件。
    1. #include "fsl_tpm_driver.h"
    复制代码
    接下来就是配置定时器,初始化定时器。
    1. tpm_general_config_t driverInfo;
    2.         tpm_pwm_param_t param = {
    3.             .mode    = kTpmEdgeAlignedPWM,
    4.                   .edgeMode = kTpmHighTrue,
    5.                   .uFrequencyHZ = 120000u,
    6.                   .uDutyCyclePercent = 99u
    7.         };
    复制代码
    这些定义在SDK的说明文档里都有,可以随时翻阅。接下来启动定时器,利用PWM完成呼吸灯的功能。
    1. TPM_DRV_PwmStart(2u,¶m,1u);
    2. if((param.uDutyCyclePercent>=100)||(param.uDutyCyclePercent<=0))
    3.                 {
    4.                         step *=-1;
    5.                 }
    6.                
    7.                 param.uDutyCyclePercent +=step;
    复制代码
    OK,这个时候就可以仿真以下看一下效果。发现,不行,继续找原因,设置都对呀。其他led引脚都能实现。忽然想起来了,有一个地方的配置和所用led的引脚冲突了。就是在开始的硬件初始化函数中默认的串口初始化,注释掉就没冲突了。呼吸灯功能就算完成了。写的简单,还是需要实际操练思考。

    评分

    参与人数 1NXP金币 +15 收起 理由
    小七 + 15 打赏!

    查看全部评分

    加油哦
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2023-2-15 00:12
  • 签到天数: 969 天

    连续签到: 1 天

    [LV.10]以坛为家III

    175

    主题

    2843

    帖子

    34

    金牌会员

    Rank: 6Rank: 6

    积分
    7123
    最后登录
    2023-4-20
    发表于 2016-4-5 09:15:52 | 显示全部楼层
    不错学习了!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2017-1-24 09:50
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    654

    主题

    3262

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    13127
    最后登录
    2019-1-27
    发表于 2016-4-6 15:31:02 | 显示全部楼层
    支持一下
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-20 23:30 , Processed in 0.087534 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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