智能车制作

标题: PWM [打印本页]

作者: LPP2010001    时间: 2013-3-16 19:13
标题: PWM
为什么输出PWM使能通道中断后,原来输出引脚就没有波形了,但是中断还是正常?
作者: 李增杰    时间: 2013-3-16 19:18
没见程序不知道情况
作者: LPP2010001    时间: 2013-3-16 19:40
李增杰 发表于 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);               //
    }
}




作者: 李增杰    时间: 2013-3-17 10:19
LPP2010001 发表于 2013-3-16 19:40
//=============================================
//函数名:FTM1_pwm_ch0_init
//参数:void

不好意思,用的芯片不一样,我以为是128呢
作者: LPP2010001    时间: 2013-3-17 14:14
李增杰 发表于 2013-3-17 10:19
不好意思,用的芯片不一样,我以为是128呢

同样很感谢回复!





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2