智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3693|回复: 3
打印 上一主题 下一主题

K60用FTM0的俩路PWM初始化。。。请问这样写对么,错在哪里?

[复制链接]

9

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
916
威望
449
贡献
259
兑换币
288
注册时间
2013-5-19
在线时间
104 小时
毕业学校
洛阳理工
跳转到指定楼层
1#
发表于 2014-3-3 18:07:34 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
void FTM0_Init(void)
{  
        //SIM->SCGC5 |=SIM_SCGC5_PORTA_MASK;
        SIM->SCGC5 |= SIM_SCGC5_PORTC_MASK;                           /* Enable PORTC gate clocking   */
        SIM->SCGC6|=SIM_SCGC6_FTM0_MASK;                              //Enable the Clock to the FTM0 Module


        PORTC->PCR[4] =        PORT_PCR_MUX(0x04);                                                                        //FTM0_CH3
        PORTC->PCR[2] =        PORT_PCR_MUX(0x04);                                                                        //FTM0_CH1
        FTM0->OUTMASK=0x00;                                                        
        FTM0->MODE |= FTM_MODE_WPDIS_MASK;                                //Disable Write Protection - enables changes to QUADEN, DECAPEN, etc.
        FTM0->MODE &=~ FTM_MODE_FTMEN_MASK;                                //FTMEN is bit 0, need to set to zero so DECAPEN can be set to 0
        FTM0->QDCTRL &=~FTM_QDCTRL_QUADEN_MASK;                 //Set Edge Aligned PWM QUADEN is Bit 1, Set Quadrature Decoder Mode (QUADEN) Enable to 0,   (disabled)
       
        /*设置FTM0模式:设置为边沿PWM模式*/
        FTM0->CONTROLS[1].CnSC &=~FTM_CnSC_ELSA_MASK;         //Edge or level Select
        FTM0->CONTROLS[1].CnSC |= FTM_CnSC_MSB_MASK|FTM_CnSC_ELSB_MASK;         //Channel Mode select
        FTM0->CONTROLS[3].CnSC &=~FTM_CnSC_ELSA_MASK;         //Edge or level Select
        FTM0->CONTROLS[3].CnSC |= FTM_CnSC_MSB_MASK|FTM_CnSC_ELSB_MASK;         //Channel Mode select

        /*占空比=CnV/(MOD+1) PMW频率=系统频率/2/(2^FTM1_SC_PS)/FTM1_MOD */
        FTM0->CNT = 0;                                                                         //FTM Counter Value - reset counter to zero
        FTM0->MOD =1125 ;                                                                  //设置周期 1125
        FTM0->CNTIN = 0;                                                                 //Set the Counter Initial Value to 0

        FTM0->SC = 0;                                                                         //Make sure its Off!

        FTM0->CONTROLS[1].CnV=0;
        FTM0->CONTROLS[3].CnV=0;
        FTM0->SC |=  FTM_SC_CLKS(1);                                         // Selects Clock source to be "system clock"
        /*
        000 - 0 - No divide                  
        001 - 1 - Divide by 2
        010 - 2 - Divide by 4
        011 - 3 - Divide by 8
        100 - 4 - Divide by 16
        101 - 5 - Divide by 32
        110 - 6 - Divide by 64
        111 - 7 - Divide by 128
        */
        FTM0->SC |= FTM_SC_PS(3);                                                 //sets pre-scale value see details below  No divide   8分频

}

回复

使用道具 举报

0

主题

91

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4088
威望
1944
贡献
1226
兑换币
1282
注册时间
2013-7-10
在线时间
459 小时
4#
发表于 2014-3-4 13:47:29 | 只看该作者
一个FTM只能产生一种频率PWM
回复 支持 反对

使用道具 举报

9

主题

127

帖子

0

精华

高级会员

Rank: 4

积分
916
威望
449
贡献
259
兑换币
288
注册时间
2013-5-19
在线时间
104 小时
毕业学校
洛阳理工
3#
 楼主| 发表于 2014-3-4 12:19:58 | 只看该作者
melon_1 发表于 2014-3-3 19:46
芯片手册翻一翻

求指点啊。弄了好几天了。。弄不出来。是不是在同一个FTM之下。使用寄存器的有一个共用设置之类的东西?
回复 支持 反对

使用道具 举报

53

主题

641

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5159

优秀会员奖章活跃会员奖章论坛骨干奖章论坛元老奖章在线王奖章

威望
2314
贡献
1085
兑换币
996
注册时间
2012-8-8
在线时间
880 小时
毕业学校
dfzx
2#
发表于 2014-3-3 19:46:30 | 只看该作者
芯片手册翻一翻
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-6 13:46 , Processed in 0.043302 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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