初中生
最后登录1970-1-1
在线时间 小时
注册时间2020-12-29
|
本帖最后由 richard123 于 2021-1-30 08:30 编辑
void GENERAL_TIM_INT_FUN(void)
{
if ( TIM_GetITStatus ( GENERAL_TIM, TIM_IT_Update) != RESET )
{
TIM_ICUserValueStructure.Capture_Period ++;
TIM_ClearITPendingBit ( GENERAL_TIM, TIM_FLAG_Update );
}
if ( TIM_GetITStatus (GENERAL_TIM, GENERAL_TIM_IT_CCx ) != RESET)
{
if ( TIM_ICUserValueStructure.Capture_StartFlag == 0 )
{
TIM_SetCounter ( GENERAL_TIM, 0 );
TIM_ICUserValueStructure.Capture_Period = 0;
TIM_ICUserValueStructure.Capture_CcrValue = 0;
GENERAL_TIM_OCxPolarityConfig_FUN(GENERAL_TIM, TIM_ICPolarity_Falling);
TIM_ICUserValueStructure.Capture_StartFlag = 1;
}
else
{
TIM_ICUserValueStructure.Capture_CcrValue =
GENERAL_TIM_GetCapturex_FUN (GENERAL_TIM);
GENERAL_TIM_OCxPolarityConfig_FUN(GENERAL_TIM, TIM_ICPolarity_Rising);
TIM_ICUserValueStructure.Capture_StartFlag = 0;
TIM_ICUserValueStructure.Capture_FinishFlag = 1;
}
TIM_ClearITPendingBit (GENERAL_TIM,GENERAL_TIM_IT_CCx);
}
}
如果我一个定时器里输入两个脉冲,怎么知道哪个通道产生了更新中断?
这个是一个脉冲的中断处理方式 ,那两个脉冲呢,更新中断 TIM_GetITStatus ( GENERAL_TIM, TIM_IT_Update),怎么知道 是哪个通道的脉冲发生的更新中断呢?
|
|