您的位置首页百科知识

delay-100ms延时函数是如何延时的?

delay-100ms延时函数是如何延时的?

的有关信息介绍如下:

delay-100ms延时函数是如何延时的?

return 1是当前的延时还没有结束, return 0 是延时完成

延时的最小间隔是TIME1_UP_IRQHandler的间隔时间 ,如果是100ms, 每调用一次就会将Delaycount减去1,就是1个Delaycount就会产生一个100ms的延时,所以

uint8_t Delay_100ms( uint32_t interval )

{

if( Delaycount != 0 )

return 1 ; // 当前的延时没有结束, 这个判断可能是使用的硬件中断

Delaycount = interval ; // 间隔就是100ms , interval的值就是多少个100ms, 赋初值

while(Delaycount > 0 ) ; // 等待延时结束

return 0 ; // 延时结束

}

return 0和return 1都是返回到调用处,1是告诉调用的地方当前的延时还没有结束,也就是这次的调用是失败的。Delaycount是个全局变量,那么Delay_100ms这个函数在同一个时刻,只能被一个地方调用,并且直到Delaycount归0,当前的调用结束返回0后,才可以再次被调用。这可以看做是一种保护措施吧,否则的话,这次的调用会破坏当前正在进行的延时,相当于加长了延时的时间。