For starting, I was only running the FTM timer with periodic interrupt (following the SDK example code). My system clock is 80MHZ but unable to figure out why interrupt is occurring at 86.2 KHZ (Around). Sharing the code and registers data. any suggestions?
ftm_state_t ftm_state;
/* Global configuration of flexTimer_mc_1 InitConfig 0 */
ftm_user_config_t flexTimer_mc_1_InitConfig_0 =
{
{
true, /* Software trigger state */
false, /* Hardware trigger 1 state */
false, /* Hardware trigger 2 state */
false, /* Hardware trigger 3 state */
false, /* Max loading point state */
false, /* Min loading point state */
FTM_SYSTEM_CLOCK, /* Update mode for INVCTRL register */
FTM_SYSTEM_CLOCK, /* Update mode for SWOCTRL register */
FTM_SYSTEM_CLOCK, /* Update mode for OUTMASK register */
FTM_SYSTEM_CLOCK, /* Update mode for CNTIN register */
false, /* Automatic clear of the trigger*/
FTM_UPDATE_NOW, /* Synchronization point */
},
FTM_MODE_UP_TIMER, /* Mode of operation for FTM */
FTM_CLOCK_DIVID_BY_1, /* FTM clock prescaler */
FTM_CLOCK_SOURCE_SYSTEMCLK, /* FTM clock source */
FTM_BDM_MODE_11, /* FTM debug mode */
true, /* Interrupt state */
false /* Initialization trigger */
};
void FTM0_Ovf_Reload_IRQHandler(void)
{
PINS_DRV_TogglePins(LED1_CTRL_GPIO, (1 << LED1_CTRL_PIN));
FTM_DRV_ClearStatusFlags(0, (uint32_t)FTM_TIME_OVER_FLOW_FLAG);
}
/* Timer mode configuration for flexTimer_mc_1 TimerConfig 0 */
ftm_timer_param_t flexTimer_mc_1_TimerConfig_0 =
{
FTM_MODE_UP_TIMER, /* Counter mode */
0, /* Initial counter value */
3, //48000 /* Final counter value */
};
void run_demo_led(void){
/* Initialize FTM */
FTM_DRV_Init(0, &flexTimer_mc_1_InitConfig_0, &ftm_state);
/* Initialize counter */
FTM_DRV_InitCounter(0, &flexTimer_mc_1_TimerConfig_0);
/* Start Counter */
FTM_DRV_CounterStart(0);
while(1){
}
}
{
.clockName = FTM0_CLK,
.clkGate = true,
.clksrc=CLK_SRC_SPLL_DIV1, //CLK_SRC_SIRC_DIV1,
.frac = MULTIPLY_BY_ONE,
.divider = DIVIDE_BY_ONE,
}



