[mw_shl_code=c,true]void TIM2_IRQHandler(void)
{
if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) //更新中断处理
{
if(CapCnt==1)
{
OverflowCnt1++;
}
else if(CapCnt==2)
{
OverflowCnt2++;
}
else if(CapCnt==3)
{
OverflowCnt3++;
}
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
}
if(TIM_GetITStatus(TIM2, TIM_IT_CC2) != RESET)
{
if(FreqMeasureFlag ==FreqMeasure_ON && CapEnd==0)
{
if(!CapCnt)
{
TIM2CH2_CAPTURE_VAL1=TIM_GetCapture2(TIM2);
OverflowCnt1=0;
OverflowCnt2=0;
OverflowCnt3=0;
CapEnd =0;
CapCnt++;
}
else if(CapCnt==1)
{
TIM2CH2_CAPTURE_VAL2=TIM_GetCapture2(TIM2);
CapCnt++;
}
else if(CapCnt==2)
{
TIM2CH2_CAPTURE_VAL3=TIM_GetCapture2(TIM2);
CapCnt++;
}
else if(CapCnt==3)
{
TIM2CH2_CAPTURE_VAL4=TIM_GetCapture2(TIM2);
CapEnd = 1;
CapCnt = 0;
}
}
TIM_ClearITPendingBit(TIM2, TIM_IT_CC2);
}
} [/mw_shl_code]
[mw_shl_code=c,true]我开了捕获中断和溢出中断,问题是要这两个中断产生的间隔很短,以至于两个中断同时进入这个中断函数时,我如何能区分清哪个中断先产生呢?[/mw_shl_code]
|