NXP MCU 技术论坛
直播中

lizhi

10年用户 14经验值
擅长:电源/新能源 模拟技术 嵌入式技术 制造/封装 存储技术 控制/MCU 电源/新能源 嵌入式技术 制造/封装 模拟技术 存储技术 控制/MCU
私信 关注
[问答]

k60输入捕获采到的频率不对


我用kinetis k60做PWM输入捕获的实验,我设的PA6输出PWM输出是100hz,短接PA6和PA8,在PA8采集到的是6Hz,这个结果是怎么回事?(用逻辑分析仪采到PA6上是100Hz).谁能告诉一下?附上代码:
static uint32_t InputCaptureValue;
static void FTM1_ISR(void)
{
    uint32_t clock;
    InputCaptureValue = FTM_GetChlCounter(HW_FTM1, HW_FTM_CH0);
    clock = GetClock(kBusClock);
    //CLOCK_GetClockFrequency(kBusClock,&clock);
    FTM_SetMoudleCounter(HW_FTM1, 0);
    InputCaptureValue = (clock/16/InputCaptureValue);
}

DelayInit();
    UART_QuickInit(UART0_RX_PD06_TX_PD07, 115200);
    GPIO_QuickInit(HW_GPIOE, 7, kGPIO_Mode_OPP); /* LED */
    printf("ftm intput capture test, pwm will be generated on PA06 and input pin: PA08rn");
    FTM_PWM_QuickInit(FTM0_CH4_PA07, kPWM_EdgeAligned, 100);//设置频率为100
//输入捕获部分
    FTM_IC_QuickInit(FTM1_CH0_PA08, kFTM_ClockDiv16);
    FTM_IC_SetTriggerMode(HW_FTM1, HW_FTM_CH0, kFTM_IC_FallingEdge);
    FTM_CallbackInstall(HW_FTM1, FTM1_ISR);
    FTM_ITDMAConfig(HW_FTM1, kFTM_IT_CH0, true);

    while(1)
    {
        printf("Frequency:%6dHzr", InputCaptureValue);
        GPIO_ToggleBit(HW_GPIOE, 7);
        DelayMs(500);
    }

更多回帖

发帖
×
20
完善资料,
赚取积分