智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1388|回复: 4
打印 上一主题 下一主题

[咨询] PWM

[复制链接]

5

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
379
威望
207
贡献
102
兑换币
109
注册时间
2012-10-27
在线时间
35 小时
跳转到指定楼层
1#
发表于 2013-3-16 19:13:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么输出PWM使能通道中断后,原来输出引脚就没有波形了,但是中断还是正常?

1

主题

97

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329

活跃会员奖章

威望
217
贡献
98
兑换币
5
注册时间
2013-2-25
在线时间
7 小时
毕业学校
齐鲁工业大学
2#
发表于 2013-3-16 19:18:57 | 只看该作者
没见程序不知道情况
回复 支持 反对

使用道具 举报

5

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
379
威望
207
贡献
102
兑换币
109
注册时间
2012-10-27
在线时间
35 小时
3#
 楼主| 发表于 2013-3-16 19:40:11 | 只看该作者
李增杰 发表于 2013-3-16 19:18
没见程序不知道情况

//=============================================
//函数名:FTM1_pwm_ch0_init
//参数:void
//返回:无
//说明:初始化FTM1,输出PWM
//      ch0:    frequency = 50Hz,duty_cycle = 0.075
//=============================================
void FTM1_pwm_ch0_init(void)
{
    //period = 1 / frequency;

    SIM_SCGC5 |= SIM_SCGC5_PORTA_MASK;
    PORTA_PCR12 = PORT_PCR_MUX(3) | PORT_PCR_DSE_MASK;           //channel 2
    SIM_SCGC6 |= SIM_SCGC6_FTM1_MASK;       //加载FTM0时钟

    FTM1_MODE |= FTM_MODE_WPDIS_MASK;       //写保护禁止
    //FTM1_MODE |= FTM_MODE_FTMEN_MASK;

/************** 设置为ePWM *****************/   
    FTM1_C0SC |= FTM_CnSC_MSB_MASK;          //1
    FTM1_C0SC |= FTM_CnSC_MSA_MASK;          //1
    FTM1_C0SC |= FTM_CnSC_ELSB_MASK;         //1
    FTM1_C0SC &= ~FTM_CnSC_ELSA_MASK;        //0

    FTM1_SC &= ~FTM_SC_CPWMS_MASK;          //0
    FTM1_SC |= FTM_SC_CLKS(1);              //system clock
    FTM1_SC |= FTM_SC_PS(5);                //预分频为32

    //FTM1_MODE &= ~1;                        //FTMEN = 0

    FTM1_OUTMASK = 0xfe;                    //only channel 0 is not masked
    FTM1_COMBINE = 0;
    FTM1_EXTTRIG = 0;
    FTM1_POL = 0;
    FTM1_INVCTRL = 0;
    FTM1_SWOCTRL = 0;                       //
    FTM1_PWMLOAD = 0;

/************** 设置周期 *******************/
    FTM1_CNTIN = 0;
    FTM1_MOD = 30000;
    FTM1_C0V = 2250;
    FTM1_CNT = 0;

/************** 打开中断 *******************/   
    //FTM1_C0SC |= FTM_CnSC_CHIE_MASK;             //使能通道中断
    //FTM1_SC |= FTM_SC_TOIE_MASK;                 //

}

void isr_ftm1(void)
{
    run_counter1++;
    FTM1_SC &= ~FTM_SC_TOF_MASK;     //清除中断标志
    if(run_counter1 == 20)
    {
        run_counter1 = 0;
        BSET(22,GPIOB_PTOR);               //
    }
}



回复 支持 反对

使用道具 举报

1

主题

97

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
329

活跃会员奖章

威望
217
贡献
98
兑换币
5
注册时间
2013-2-25
在线时间
7 小时
毕业学校
齐鲁工业大学
4#
发表于 2013-3-17 10:19:12 | 只看该作者
LPP2010001 发表于 2013-3-16 19:40
//=============================================
//函数名:FTM1_pwm_ch0_init
//参数:void

不好意思,用的芯片不一样,我以为是128呢
回复 支持 反对

使用道具 举报

5

主题

14

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
379
威望
207
贡献
102
兑换币
109
注册时间
2012-10-27
在线时间
35 小时
5#
 楼主| 发表于 2013-3-17 14:14:05 | 只看该作者
李增杰 发表于 2013-3-17 10:19
不好意思,用的芯片不一样,我以为是128呢

同样很感谢回复!
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-28 12:52 , Processed in 0.041382 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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