超时函数原理及程序

来源:互联网 发布:淘宝店铺最怕什么 编辑:程序博客网 时间:2024/05/16 17:02

一、超时函数原理

    在初始化定时器时,要设定定时器计时中断(本例设置为1ms)时间,在中断中要进行计数。启动定时器时候,开始要设定两个参数:一个初始计数值a,要设定的定时间隔为i。此时a在定时器中断里不断加1计数,当计数到b时,正好b-a>i时,说明已经超时,超时函数返回一个true值,原理示意图如图1所示。


图1 超时原理示意图

二、版权声明

博主:Herd_Boy

声明:喝水不忘挖井人,转载请注明出处。

原文地址:http://my.csdn.net/lzy990828

联系方式:726955368@qq.com

技术交流QQ:726955368


三、程序流程图

四、程序代码

<span style="font-size:14px;font-weight: normal;">/********************************************************************************* 函数名称:  u16 Clock_Time()** 函数功能:  超时计数** 入口参数:  无** 出口参数:  返回计数值** 备    注:  无*******************************************************************************/u16 Clock_Time(){  return clock_tick;}</span>
<pre name="code" class="plain"><span style="font-size:14px;font-weight: normal;">/********************************************************************************* 函数名称:  void Timer_Set(struct timer *t, u16 interval)** 函数功能:  设置一个定时时间** 入口参数:  t:指向定时器, interval:超时间隔** 出口参数:  无** 备    注:  无*******************************************************************************/void Timer_Set(struct timer *t, u16 interval){  t->interval = interval;  t->start = Clock_Time();}/********************************************************************************* 函数名称:  u16 Timer_Expired(struct timer *t)** 函数功能:  判断是否超时** 入口参数:  指向定时器的指针** 出口参数:  TRUE or FALSE** 备    注:  无*******************************************************************************/u16 Timer_Expired(struct timer *t){   u16 diff;   diff=(Clock_Time() - t->start) + 1;   return t->interval < diff;}</span>


五、测试结果

六、总结
      写博客只为记录自己成长路上的点点滴滴,如能对别人有所帮助,那便是锦上添花,希望自己“不忘初心”,第一次写博客,如有错误请指正。

2 0
原创粉丝点击