当前位置:回答三>生活百科>delay-100ms延时函数是如何延时的?

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

2024-11-24 16:37:28 编辑:join 浏览量:597

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后,才可以再次被调用。这可以看做是一种保护措施吧,否则的话,这次的调用会破坏当前正在进行的延时,相当于加长了延时的时间。

标签:延时,delay,100ms

版权声明:文章由 回答三 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.huidasan.com/life/334923.html
热门文章