关于MSCOMM时间控制的方法那个更合适?
以前作过一个程序,通过TIMER 10S发送5个命令到MSCOMM并收回数据
最近看了一个外国人写的东东(VB4)是用
DO
读定串口数据并发送指令
DOEVENTS
更新所有的屏幕
DOEVENTS
整个循环用时约一S(现在的XP机,以前的WIN98就不知道了)
LOOP
这个程序是用于工业炉膛控制的
这两种方法到底那种更合适
后面的一个方法,整个CPU运行都是100%的
谢谢
[解决办法]
看你对实时性的要求了。
[解决办法]
尽量不要用用do...loop的死循环,定时跑5ms的CPU也不会100%
[解决办法]
循环的话CPU占用率肯定高,不过如果是短暂的等待那么影响不大(串口通信通常等待时间在10~60ms,不长)。
如果觉得循环占用CPU资源,那么可以使用OnComm事件方式,这样就能避免循环等待的问题。
在实际使用中,你发送一个命令给MSCOMM,肯定马上就等待MSCOMM返回,所以,实际使用中循环和MSCOMM效率相当
[解决办法]
Sleep能使CPU挂起,自然CPU利用率也就不占用CPU资源了。可以用Sleep代替循环。