主题:关于超时退出的问题

  共有34596人关注过本帖    
sdfa
1楼


关于超时退出的问题  发帖心情 Post By:2005-2-28 11:00:00   [只看该作者]

初学BC 我用etr232i采集数据时 要么是收到数据退出 要么是超时退出  超时是毫秒级的   请问一下 DOS是单任务环境 你们是怎么实现超时退出的  谢谢 

  单帖管理 | 引用 | 回复 回到顶部
zhl
2楼


  发帖心情 Post By:2005-2-28 11:12:00   [只看该作者]

可以通过记录启动和结束时clock(),计算它们之间的差值来判断是否超时。如:
clock_t start, end;
start = end = clock( );
for(;;)
   {
    // application code 
    end = clock( );
    if( (end-start)>2 )   break;    // 2: about 110ms
   }

  单帖管理 | 引用 | 回复 回到顶部
sdfa
3楼


  发帖心情 Post By:2005-2-28 11:23:00   [只看该作者]

超时只有5-10ms  该设成多少呢?

  单帖管理 | 引用 | 回复 回到顶部
zhl
4楼


  发帖心情 Post By:2005-2-28 11:33:00   [只看该作者]

如果是这样的话,可直接利用for(;;),通过调整循环次数来实现。

  单帖管理 | 引用 | 回复 回到顶部
sdfa
5楼


  发帖心情 Post By:2005-2-28 11:51:00   [只看该作者]

我开始就用的FOR(;;)来实现 但是好象不耗时的感觉 那我再试试
btw:end-start>1 大概是多少MS呢?

  单帖管理 | 引用 | 回复 回到顶部
zhl
6楼


  发帖心情 Post By:2005-2-28 12:14:00   [只看该作者]

end-start>1 相当于时间间隔为1个tick,越约为55ms。
建议可采用for(;;) + NB_Delay( )延时,这样比较好控制。如:
for( i=0; i<5; i++ )
  {
   .....
   NB_Delay( 1 );      //延时1ms。
   }

  单帖管理 | 引用 | 回复 回到顶部
sdfa
7楼


  发帖心情 Post By:2005-2-28 12:38:00   [只看该作者]

了解了 谢谢

  单帖管理 | 引用 | 回复 回到顶部

返回首页

关于超时退出的问题

用户名:
            验证码: 验证码,看不清楚?请点击刷新验证码
内容: