Code: Select all
TIM_ITConfig(TIM9, TIM_IT_Update, ENABLE);
NVIC_SetPriority(TIM1_BRK_TIM9_IRQn, 1);
TIM_ClearITPendingBit(TIM9, TIM_IT_Update);
NVIC_ClearPendingIRQ(TIM1_BRK_TIM9_IRQn);
NVIC_EnableIRQ(TIM1_BRK_TIM9_IRQn);
TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE);
NVIC_SetPriority(TIM2_IRQn, 1);
TIM_ClearITPendingBit(TIM2, TIM_IT_CC1);
NVIC_ClearPendingIRQ(TIM2_IRQn);
NVIC_EnableIRQ(TIM2_IRQn);
Code: Select all
void TIM1_BRK_TIM9_IRQHandler(void)
{
TIM_Cmd(TIM2,ENABLE);
TIM_SelectMasterSlaveMode(TIM2, TIM_SlaveMode_Reset);
TIM_ClearITPendingBit(TIM9, TIM_IT_Update);
}
void TIM2_IRQHandler(void)
{
TIM_SelectMasterSlaveMode(TIM2, 0);
TIM_Cmd(TIM2,DISABLE);
TIM_Cmd(TIM1, DISABLE);
TIM_Cmd(TIM4, DISABLE);
TIM4->CNT=0;
TIM_Cmd(TIM1, ENABLE);
TIM_ClearITPendingBit(TIM2, TIM_IT_CC1);
}