码迷,mamicode.com
首页 > 其他好文 > 详细

超时的2种方法

时间:2017-07-18 19:42:40      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:全局   nbsp   合数   定义   int   估计   break   一个   事件   

在双机通讯或者判断晶振是否成功起振都会用到超时。

一 串口通讯的超时:定义一个全局变量,在发送函数中不断将变量清0,在定时器中断里面不断对该值加1,在超时判断处结合数值和时间间隔计算得到一个时间(从结束发送开始到现在的事件)与超时标准时间对比看是否超时。

typedef timeout

{

  bool flag_timeout;

      unsigned long  timecnt;

       unsigned long timevar

}Timeout_TypeDef;

二 阻塞式的超时判断:

/*功能:判断超时
  参数:超时时间
  特点:阻塞式,需要结合外部中断触发改变flag_XX
*/
bool Judge_chaoshi( var_t)
{
    bit flag_chaoshi=0;
    unsigned int i=var_t /*需要估计或实验值大小,要比正常所需稍长一点时间*/
    do{
        if(flag_XX)/*外部中断触发*/
            break;
    }while(i--);
    if(i==0)
        flag_chaoshi=1;
    return flag_chaoshi;

}

超时的2种方法

标签:全局   nbsp   合数   定义   int   估计   break   一个   事件   

原文地址:http://www.cnblogs.com/jieruishu/p/7202071.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!