主題:NETBOX-II時鐘是不是有問題 共有33720人關注過本帖 |
---|
kmajian |
1樓 |
NETBOX-II時鐘是不是有問題 Post By:2007-7-5 15:13:00 [只看該作者]
我在NETBOX-II上面做延時, 我的延遲時間是120秒, 開始運行的時候都還很準的, 但過一段時間(大概半天,10來個小時以后)就不行了, 時間會縮短, 本來延遲120秒的,可是還沒有30秒就超時了, 我深入研究過自己的代碼, 找不到錯誤(就60來行代碼不可能有大問題的). 但是不管我用clock取時間還是用time都是這樣,不知道會是哪里的問題?
|
|
單帖管理 | 引用 | 回復 |
x10 |
2樓 |
Post By:2007-7-5 22:09:00 [只看該作者]
若有測試代碼,可以發給我們看看,謝謝!
|
|
單帖管理 | 引用 | 回復 |
kmajian |
3樓 |
Post By:2007-7-6 12:58:00 [只看該作者]
代碼如下, 只是把time取時換成了clock取時.
#include "config.h" static time_t hbstart;                           // 網絡開始時的clock時間 static time_t hbtime;                            // 心跳周期 static uint8 connFlg;                            // 網絡連接標志 static struct g_CSysTiPara *pSysTiPara; // 心跳處理初始化 void HeartbeatInit( struct g_CSysTiPara *CSysTiPara ) {     pSysTiPara = CSysTiPara;     hbtime = HB_LAND_DLY;     connFlg = 0; } // 登陸成功后,心跳時間改變 void HeartbeatChange( void ) {     hbtime = pSysTiPara->htCyc + HB_NET_DLY; } // 網絡已經連接上,心跳開始跳動 void HearbeatStart( void ) {     connFlg = 1;     hbstart = time( NULL ); } // 網絡異常,心跳停止 void HearbeatEnd( void ) {     connFlg = 0; } // 心跳跳動是否超時 int16 HeartbeatOverTime( void ) {     time_t nowclk;     int16 ret;          ret = 0;     if( connFlg > 0 )     {         nowclk = time( NULL );         if( ( nowclk - hbstart ) > hbtime )         {             connFlg = 0;             ret = 1;         }     }          return ret; } // 心跳跳動 void Heartbeat( void ) {     hbstart = time( NULL ); #if DEBUG_EN > 0     struct time t;     gettime( &t );     printf( "%02d:%02d:%02d\n", t.ti_hour, t.ti_min, t.ti_sec ); #endif     PDEBUGS( "A heartbeat!" ); } |
|
單帖管理 | 引用 | 回復 |