智能车制作

标题: 输入捕捉程序配置问题求指教 [打印本页]

作者: GVC    时间: 2014-7-16 22:10
标题: 输入捕捉程序配置问题求指教
void FTM_Input_init( Input_cfg cfg)
{
  // Input_cfg   输入捕捉配置(Rising、Falling、Rising_or_Falling)上升沿捕捉、下降沿捕捉、跳变沿捕捉
        SIM_SCGC6 |= SIM_SCGC6_FTM0_MASK;                           //使能FTM1时钟
        SIM_SCGC5 |= SIM_SCGC5_PORTC_MASK;        PORTC_PCR1= PORT_PCR_MUX(3)|PORT_PCR_DSE_MASK;  // PTC1
    /******************* 设置为输入捕捉功能 *******************/
    switch(cfg)
    {
    case Rising:    //上升沿触发
        FTM0_C0SC |=  ( FTM_CnSC_ELSA_MASK  | FTM_CnSC_CHIE_MASK );                   //置1
        FTM0_C0SC &= ~( FTM_CnSC_ELSB_MASK  | FTM_CnSC_MSB_MASK | FTM_CnSC_MSA_MASK); //清0
        break;

    case Falling:   //下降沿触发
        FTM0_C0SC |= (FTM_CnSC_ELSB_MASK  | FTM_CnSC_CHIE_MASK );                    //置1
        FTM0_C0SC &= ~( FTM_CnSC_ELSA_MASK | FTM_CnSC_MSB_MASK | FTM_CnSC_MSA_MASK); //清0
        break;

    case Rising_or_Falling: //上升沿、下降沿都触发
        FTM0_C0SC |=  ( FTM_CnSC_ELSB_MASK | FTM_CnSC_ELSA_MASK  | FTM_CnSC_CHIE_MASK ); //置1
        FTM0_C0SC &= ~( FTM_CnSC_MSB_MASK  | FTM_CnSC_MSA_MASK); //清0
        break;
    }

    FTM0_SC = FTM_SC_CLKS(0x1);       //系统时钟

    FTM0_MODE |= FTM_MODE_WPDIS_MASK;
    FTM0_COMBINE = 0;
    FTM0_MODE &= ~FTM_MODE_FTMEN_MASK;
    FTM0_CNTIN = 0;

    FTM0_STATUS = 0x00;               //清中断标志位
    //开启输入捕捉中断
    Enable_IRQ(FTM0_ISR_NUM);
}

void FTM0_IRQHandler()
{
    uint8 s= FTM2_STATUS;             //读取捕捉和比较状态
    FTM0_STATUS = 0x00;             //清中断标志位
    if(s&1<<0)
      {FTM0_IRQ_DIS(0);     //禁止输入捕捉中断
    pwmtest++;                             //计数+1
FTM0_IRQ_EN(0);}


输入捕捉程序配置完成,但无法捕捉到输入的pwm波,串口发送回来的计数值一直为零,程序按照蓝宙例程修改,不知有何问题,求各路大神指教,拜托了。





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