void TIM5_IRQHandler(void)
{
if((TIM5CH1_CAPTURE_STA&0X80)==0)//
{
if (TIM_GetITStatus(TIM5, TIM_IT_Update) != RESET)
{
if(TIM5CH1_CAPTURE_STA&0X40)//
{
if((TIM5CH1_CAPTURE_STA&0X3F)==0X3F)//
{
TIM5CH1_CAPTURE_STA|=0X80;//
TIM5CH1_CAPTURE_VAL=0XFFFF;
}else TIM5CH1_CAPTURE_STA++;
}
}
if (TIM_GetITStatus(TIM5, TIM_IT_CC1) != RESET)//
{
if(TIM5CH1_CAPTURE_STA&0X40) // {
TIM5CH1_CAPTURE_STA|=0X80; //
TIM5CH1_CAPTURE_VAL=TIM_GetCapture1(TIM5);
TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Rising); //
}else //
{
TIM5CH1_CAPTURE_STA=0; //
TIM5CH1_CAPTURE_VAL=0;
TIM_SetCounter(TIM5,0);//计数器清零时捕获不是已经发生了吗?那么这样捕获时间不是从捕获事件发生后计数器清零时开始计时的?表示很疑惑,小弟愚笨,望大侠帮我解答一下。
TIM5CH1_CAPTURE_STA|=0X40; //
TIM_OC1PolarityConfig(TIM5,TIM_ICPolarity_Falling); //
}
}
}
|