查看: 3144|回复: 1

[原创] 【疯狂的四驱车】实验六 2路PWM实验

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

    连续签到: 1 天

    [LV.8]以坛为家I

    241

    主题

    2239

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    4473
    最后登录
    2020-4-14
    发表于 2016-7-24 22:13:51 | 显示全部楼层 |阅读模式
    PWM实验算是一半成功,原因是还没有找到如何能将PWM频率见地道500Hz,目前在1000Hz以上都正常。
    一样的方法,PWM没有改变board.h函数,将pin_mux.c增加:
    //Set PORTC_1,2 Alt4_FTM0 for 2 Output PWMs
    PORT_SetPinMux(PORTC,1U,kPORT_MuxAlt4);
    PORT_SetPinMux(PORTC,2U,kPORT_MuxAlt4);

    在主函数的IO口设置中增加:
    //define PWM0
    ftmParam[0].chnlNumber=(ftm_chnl_t)BOARD_FIRST_FTM_CHANNEL;
    ftmParam[0].level=kFTM_LowTrue;
    ftmParam[0].dutyCyclePercent=0U;
    ftmParam[0].firstEdgeDelayPercent=0U;
    //define PWM1
    ftmParam[1].chnlNumber=(ftm_chnl_t)BOARD_SECOND_FTM_CHANNEL;
    ftmParam[1].level=kFTM_LowTrue;
    ftmParam[1].dutyCyclePercent=0U;
    ftmParam[1].firstEdgeDelayPercent=0U;
    FTM_GetDefaultConfig(&ftmInfo);

    增加一段PWM初始化函数:
    //PWM Initial
    void pwmInit(void){
    FTM_Init(BOARD_FTM_BASEADDR,&ftmInfo);
    FTM_SetupPwm(BOARD_FTM_BASEADDR,ftmParam,2U,kFTM_EdgeAlignedPwm,dutyMax,FTM_SOURCE_CLOCK);
    FTM_StartTimer(BOARD_FTM_BASEADDR,kFTM_SystemClock);//kFTM_ExternalClock);//
    }

    在while(1)中增加,改变duty的语句即可,本例如下[PWM0的,PWM1的如法炮制即可]:
    if(duty1>(dutyMax-100)){ddut1=-dutyMin;}if(duty1<dutyMin){ddut1=dutyMin;};duty1 +=ddut1;
    FTM_UpdatePwmDutycycle(BOARD_FTM_BASEADDR,(ftm_chnl_t)BOARD_FIRST_FTM_CHANNEL,kFTM_EdgeAlignedPwm,duty1);

    全采用变量的好处是只需要改变头变量定义即可。由于设置了PWM0和PWM1为交替增减,因此一个最亮时另一个不亮。照片如下:双色二极管只有绿色亮,红色不亮。


    LCD上边的LED双色,只有绿色亮

    LCD上边的LED双色,只有绿色亮
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-2-13 08:29
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    531

    主题

    2048

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    210
    最后登录
    2018-8-14
    发表于 2016-7-24 22:22:48 | 显示全部楼层
    期待您最后面的成果
    签到 签到
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-9-5 05:49 , Processed in 0.090111 second(s), 21 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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