KE02 FTM0输入捕获(已解决)

2020-02-11 09:01发布

本帖最后由 FSL_TICS_ZJJ 于 2014-2-13 10:44 编辑

不知freescale的大牛们今天还上班吗?
问一个问题:我使用FTM0捕获脉宽,在只使用channel0的情况下能不能实现脉宽捕获?如果可以,如何识别是falling还是Rising?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
40条回答
ln08136207
2020-02-14 02:37
FSL_TICS_ZJJ 发表于 2014-2-8 17:37
这个帖子的内容可以实现你需要,http://www.amobbs.com/thread-5568613-1-1.html


今天测试了一下,遇到一个问题,使用FTM0的channel0捕获外部脉宽,进入中断后出不来了,
配置如下:
FTM_InputCaptureInit(FTM0,FTM_CHANNEL_CHANNEL0,FTM_INPUTCAPTURE_DUALEDGE_RISINGEDGE);
FTM_ClockSet(FTM0,FTM_CLOCK_SYSTEMCLOCK,FTM_CLOCK_PS_DIV8);
   
FTM_SetCallback(FTM0, FTM0_Task);

中断服务函数:
void FTM0_Isr(void)
{
    //FTM_ClrOverFlowFlag(FTM0);
   
    if(FTM_Callback[0])
    {
        FTM_Callback[0]();
    }
    FTM_ClrChanneleventFlag(FTM0,0);
}
/*************清除中断标志位**********/
void FTM_ClrChanneleventFlag(FTM_Type *pFTM,char Channeln)
{
    volatile uint32_t Read_Csc;

    Read_Csc = pFTM->CONTROLS[Channeln].CnSC;
    pFTM->CONTROLS[Channeln].CnSC &= ~FTM_CnSC_CHF_MASK;
     
}

问题是,无法清除 FTMx_CnSC的CHF位

一周热门 更多>