在线时间80 小时
UID3129096
注册时间2015-7-1
NXP金币0
该用户从未签到
版主
  
- 积分
- 720
- 最后登录
- 2015-12-29
|
使用K64 配置input capture ,没有输入波形不断进入中断。是什么原因啊。
下函数加入了参数的实际赋值
FTM_DRV_SetupChnInputCapture(BOARD_FTM_INSTANCE1= 1,ftm_ic_mode=1,BOARD_FTM_CHANNEL0=0,0);
void FTM_DRV_SetupChnInputCapture(uint32_t instance, ftm_input_capture_edge_mode_t captureMode,
uint8_t channel, uint8_t filterVal)
{
assert(instance < HW_FTM_INSTANCE_COUNT);
assert(channel < FSL_FEATURE_FTM_CHANNEL_COUNTn(instance));
uint32_t ftmBaseAddr = g_ftmBaseAddr[instance];
uint32_t chnlPairnum = FTM_HAL_GetChnPairIndex(channel);
FTM_HAL_SetClockSource(ftmBaseAddr, kClock_source_FTM_None);
FTM_HAL_SetCounterInitVal(ftmBaseAddr,0);
FTM_HAL_SetMod(ftmBaseAddr, 0xFFFF);
FTM_HAL_SetCpwms(ftmBaseAddr, 0);
FTM_HAL_SetDualChnCombineCmd(ftmBaseAddr, chnlPairnum, false);
FTM_HAL_SetDualEdgeCaptureCmd(ftmBaseAddr, chnlPairnum, false);
FTM_HAL_SetChnEdgeLevel(ftmBaseAddr, channel, captureMode);
if (channel < CHAN4_IDX)
{
FTM_HAL_SetChnInputCaptureFilter(ftmBaseAddr, channel, filterVal);
}
FTM_HAL_SetChnMSnBAMode(ftmBaseAddr, channel, 0);
FTM_DRV_SetTimeOverflowIntCmd(instance, true);
/* Set clock source to start the counter */
FTM_HAL_SetClockSource(ftmBaseAddr, kClock_source_FTM_SystemClk);
}
中断函数加1
void FTM1_IRQHandler(void)
{
int_number++;
FTM_DRV_IRQHandler(1U);
}
打印值
int_number =496690
int_number =496863
int_number =497035
int_number =497208
int_number =497381
int_number =497554
int_number =497727
int_number =497900
int_number =498073
int_number =498246
int_number =498419
int_number =498592
int_number =498765
int_number =498938
int_number =499111
int_number =499284
int_number =499457
int_number =499630
int_number =499803
int_number =499976
int_number =500149
int_number =500322
int_number =500495
|
|