延时的作用就是让数据正确处理。CPU速度来能多快取得I0口状态就多快取,而是CPU程序按指定时间间隔取值。比如CPU速度为1微妙可以缺瞎处理一条语句,你刚取完当前10口状态,如果没有延时处理,在循环处理过程中立即又去取当前10口状态作为下一个Bit位的数据。
两者之间才间隔CPU的1微妙,这样不就出错了吗?因为协议约定为104.166...微妙,所以要得到正确的数据伏烂空需要让取下一个10状态的处理过程等待104.166...微妙后再开始取值才正确,这时用延时就合适了。
扩展资料:延时函数编写分析
clock()函数返回程序从开始执行到函数执行时所经过的时间,一般经过
1ms / CLOCK_PER_SEC ,clock()函数的返回值会增加1 。。
CLOCK_PER_SEC 为time.h文件中定义的宏,每个编译器都不一样。。
TC中这样定义: #define CLOCKS_PER_SEC 18.2
VC/BCC中这样定义: #define CLOCKS_PER_SEC 1000.0
现在分析函数的执行过程,函数传过来的是秒数,但是函数需要clock函数来延时,所以需要把秒数转历昌化成 sec*CLOCL_PER_SEC,才能和clock函数返回值作比较。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)