查看: 4153|回复: 4

[其他] FTM0的PWM没有波形出来

[复制链接]
  • TA的每日心情
    无聊
    2021-5-27 14:51
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    21

    主题

    75

    帖子

    1

    中级会员

    Rank: 3Rank: 3

    积分
    298
    最后登录
    2025-7-3
    发表于 2016-7-29 11:14:19 | 显示全部楼层 |阅读模式
    本帖最后由 烟雨梦 于 2016-7-29 11:58 编辑

    参考官方EPWM的demo,通过ftm0ch1输出PWM控制背光亮度,但示波器一直没有波形出来,都是高电平,代码如下:
    void PWM_Init (void)
    {
    SIM->PINSEL &= ~SIM_PINSEL_FTM0PS1_MASK; //FTM0CH1->PTB3:背光的PWM控制脚
    SIM->SCGC |= SIM_SCGC_FTM0_MASK;//open the clock gate
    FTM0->SC = 0x0;
        FTM0->CONTROLS[1].CnSC = FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK;  
        FTM0->CONTROLS[1].CnV  = 1100;
    /* update MOD value */
        FTM0->CNT = 0;
        FTM0->MOD = 9999;
    /* set clock source and start the counter */
        FTM_ClockSet(FTM0, FTM_CLOCK_SYSTEMCLOCK, FTM_CLOCK_PS_DIV4);
        /* enable FTM2 interrupt in NVIC */
        NVIC_EnableIRQ(FTM0_IRQn);
        /* setup call back function for interrupt */
        FTM_SetCallback(FTM0, PWM_Task);
        FTM_EnableOverflowInt(FTM0);
    }
    uint16_t u16ChV_old, u16ChV_new;
    void PWM_Task(void)
    {
        static uint16_t u16count;
        static uint8_t u8DirMark;

        // clear the flag
        FTM_ClrOverFlowFlag(FTM0);
             
        if(100 == u16count)
        {
            u16count = 0;
            u16ChV_old = FTM0->CONTROLS[1].CnV;
            if(!u8DirMark)
            {
                u16ChV_new = u16ChV_old + 200;
                if(u16ChV_new >= FTM0->MOD)
                {
                    u16ChV_new = FTM0->MOD - 200;
                    u8DirMark  = 1;
                }
                else
                {
                }
            }
            else
      {
                u16ChV_new = u16ChV_old - 200;
                if(u16ChV_new < 200)
                {
                    u16ChV_new = 200;
                    u8DirMark  = 0;
                }
                else
                {  
                }
            }
            // update the channel value
            FTM_SetChannelValue(FTM0, FTM_CHANNEL_CHANNEL1, u16ChV_new);
        }
        else
        {
            u16count++;
        }
    }
    不只是哪里配置还有问题,求帮助

    最佳答案

    请问楼主使用的MCU是什么,参考的代码以及具体做了哪些的操作?
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25494
    最后登录
    2025-9-9
    发表于 2016-7-29 14:09:37 | 显示全部楼层
    请问楼主使用的MCU是什么,参考的代码以及具体做了哪些的操作?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2021-5-27 14:51
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    21

    主题

    75

    帖子

    1

    中级会员

    Rank: 3Rank: 3

    积分
    298
    最后登录
    2025-7-3
     楼主| 发表于 2016-7-30 15:43:55 | 显示全部楼层
    小恩GG 发表于 2016-7-29 14:09
    请问楼主使用的MCU是什么,参考的代码以及具体做了哪些的操作?

    谢谢,这个问题已解决!
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2021-5-27 14:51
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    21

    主题

    75

    帖子

    1

    中级会员

    Rank: 3Rank: 3

    积分
    298
    最后登录
    2025-7-3
     楼主| 发表于 2018-1-25 10:27:58 | 显示全部楼层
    时钟使能问题
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2019-3-8 17:08
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    9

    主题

    24

    帖子

    0

    注册会员

    Rank: 2

    积分
    104
    最后登录
    2019-9-24
    发表于 2018-9-4 15:03:25 | 显示全部楼层
    我跟你情况类似,都是输出的高电平,你是咋解决的啊???
    烦躁
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-9-11 10:20 , Processed in 0.098300 second(s), 26 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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