项目涉及 50多个定时,秒级别延时,目前想到的办法,设置1个定时器1s的中断
中断处理中例如,
/*定时器 */
void TIM3_IRQHandler(void)
{
if ( TIM_GetITStatus(TIM3 , TIM_IT_Update) != RESET )
{
if(Warning_Htemper_T==1) //报警高温室内定时时间标志
{
if( Warning_Htemper_time==0)
{ Warning_Htemper_time=0; }
else
{ Warning_Htemper_time--; }
}
if(Warning_Ltemper_T==1) //报警低温温室内定时时间标志允许标志
{
if( Warning_Ltemper_time==0)
{ Warning_Ltemper_time=0; }
else
{ Warning_Ltemper_time--; }
}
if(Warning_Hhum_T==1) //报警高湿室内定时时间标志允许标志
{
if( Warning_Hhum_time==0)
{ Warning_Hhum_time=0; }
else
{ Warning_Hhum_time--; }
}
if(Warning_Lhum_T==1) //报警低湿室内定时时间标志允许标志
{
if( Warning_Lhum_time==0)
{ Warning_Lhum_time=0; }
else
{ Warning_Lhum_time--; }
}
等等很多定时标志定时, 可以每个标志写个小函数,
这样50 多个会不会有漏掉的函数啊
TIM_ClearITPendingBit(TIM3 , TIM_FLAG_Update);
}
}
或有什么好的解决办法
|