getTickCount()返回windows启动以来的毫秒数
mysleep(10)就是延时10毫秒
mysleep(10)就是延时10毫秒
解决方案 »
- 如何将不同的EXCEL文件合并成一个EXCEL?
- 200分不手软!! 如何让 TCppWebBrowser 控件在显示网页后平面化,去掉它的边框!
- 请问怎样复制(各种类型的)文件?
- Form2.Show,如何使,窗体Form2的标题出现在系统任务栏中。
- QuickReport中怎样在一页中分成左右两部分打印?
- 关于获得XP的当前用户名,紧急求教!
- remobjects 三层 怎么保持图片到数据库
- 如何编程把DBChart图表保存为图片??
- 串口通讯中奇怪现象!!!哪位高手知道啊??????
- 如何用Query控件对不在同一个数据库上的两个表进行批量Insert Into 操作
- 怎么样在DBGrid每一行前加一个checkbox.求救
- 谁有ADOExpress升级包的序列号?
2.MySleep是一个让程序暂停一段时间,mySleep(1000)暂停一秒,这个函数比sleep函数要好很多,不会耗很多的系统资源,同时不会让系统暂停,而让其它程序很好的处理
在主线程用SLEEP()就没办法响应其他请求了了,而用MYSLEEP可以。
time2 := time1;
不明白,这样的效果不是,time1和time1相等了吗
那还要
while (time2-time1)<TimeLen do
有什么用处?
time2 := GetTickCount;
函数是延时的函数。其中Application.ProcessMessages可防止进程不响应消息。一般在串口上一定要延时才行。因为串口设备在两条信号之间会有一段反应时间。不然就会出现混乱。
再程序里面还有一个“time2 := GetTickCount”这个程序的作用是用来延时的。MySleep(10)表示程序延时10个毫秒。因为串口通信的速度比较慢,就算采用19200的波特率,也远远跟不上程序执行的速度,所以,必须通过延时来达到控制时序的问题。保证程序和串行口的通讯保持同步。作为程序的循环来说,当time2>time1时,退出循环,延时结束。