在中断中
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(TIM1 == htim->Instance)
{
// HAL_GPIO_TogglePin(D2_LED_GPIO_Port,D2_LED_Pin);
T200MS_CNT++;
if(ExPulse_Input == 0)//200ms内还没捕获到第一个上升沿脉冲周期
{
T200MS_CNT = 0;
tt++;
if(tt == 10)//200*10 = 2000ms
{
}
}
else//200ms内已经捕获到第一个上升沿脉冲周期
{
if(T200MS_CNT == 1)//1 TimeSet
{
if(ExPulse_Input == 2)
{
HAL_GPIO_WritePin(LED1_GPIO,LED1_GPIO_PIN,GPIO_PIN_SET);
__HAL_TIM_SET_CAPTUREPOLARITY(&htim3, TIM_CHANNEL_1, TIM_INPUTCHANNELPOLARITY_RISING);//开启上升沿捕获
HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_1);
__HAL_TIM_ENABLE_IT(&htim3,TIM_IT_UPDATE);
}
else
{
T200MS_CNT = 1;
T200SUS++;
}
}
else if(T200MS_CNT == (TimeSet + 1))//2
{
{
T200MS_CNT = 0;
tt = 0;
HAL_GPIO_WritePin(LED1_GPIO,LED1_GPIO_PIN,GPIO_PIN_RESET);
}
}
}
}
if(TIM8 == htim->Instance)
{
ThighFre_CNT++;
}
if(TIM4 == htim->Instance)
{
TExPulse_CNT++;
}
if(TIM3 == htim->Instance)
{
TIM3_CNT++;
}
}
|