線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:2440
推到 Plurk!
推到 Facebook!

RS232接值短少的問題

尚未結案
swordsman
一般會員


發表:8
回覆:22
積分:6
註冊:2003-03-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-20 11:50:54 IP:140.138.xxx.xxx 未訂閱
請問一下,我以單晶片丟值透過RS232給PC端接收。 純DOS下以Turbo C 擷取,在無顯示值的情況下每秒可得約800筆的數據, 在printf的情況下亦可有400多筆。但在BCB下卻只剩10多筆啦。Baudrate都是19200。請問大概是哪出了問題?有沒有什麼解決之道啊?
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-20 12:55:36 IP:211.23.xxx.xxx 未訂閱
1. 請描述一下你使用的OS, 如Win98, WinME, WinNT, Win2K, WinXP 不同OS會有些不同限制    2. 純DOS下只是單純的把字秀出來, 速度快    但是Win32下的程式, 如果VCL 用的愈多, 秀字當然要花更久的時間, 所以你要改進秀字的方式~    所以你要說說你在Window底下是用什麼方式來秀出數據    相信上面兩個問題, 可以讓更多的高手可以給你更適切的解答 
swordsman
一般會員


發表:8
回覆:22
積分:6
註冊:2003-03-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-20 13:37:16 IP:140.138.xxx.xxx 未訂閱
1.我使用的是Win2K的... 2.其實我主要的目的是想用Chart把Data圖形秀出來並存成txt檔以利後續分析...但是我在把值丟到Memo底下就已經Delay很嚴重啦... 希望各位能幫我想想辦法... 謝謝!
lcsboy
版主


發表:87
回覆:622
積分:394
註冊:2002-06-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-21 00:28:01 IP:211.76.xxx.xxx 未訂閱
具拙者所知. Win2K下的IO是不能直接存取的 不知你使用WDM來呼叫, 還是使用API呢?
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-21 07:24:51 IP:210.202.xxx.xxx 未訂閱
引言: 請問一下,我以單晶片丟值透過RS232給PC端接收。 純DOS下以Turbo C 擷取,在無顯示值的情況下每秒可得約800筆的數據, 在printf的情況下亦可有400多筆。但在BCB下卻只剩10多筆啦。Baudrate都是19200。請問大概是哪出了問題?有沒有什麼解決之道啊?
您必須要用中斷式的資料接收 接收到的資料先放在Buffer中(Queue),先不要急著處理 另外再設一個Timer,有空時再去處理這個Queue ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-21 09:28:22 IP:61.218.xxx.xxx 未訂閱
swordsman您好:    1. 請試著在您的Rs-232 接收/傳送部份加上 Application->ProcessMessages(); 試試!    2.關於您的Memo顯示delay會很嚴重,建議先.400筆的資料先放在暫存變數(Buffer)中,然後一次全部將Buffer中的資料放入Memo中(Memo1->Text=Buffer;),這樣就能減少Update的次數,相對會看不出Delay; 3.如您不堅持一定要用TMemo,建議您改用TDataSet TClientDataSet TDBGrid,來做資料的儲存與顯示,TClientDataSet本身就能處理文字檔. 附帶一件事,您所問的問題為硬體的部份,請在正確的版面發問,以減少管理者的負擔,將來有網友碰到相同的問題,也能比較容易找到相關文章. 聯盟----Visita網站http://www.vista.org.tw ---[ 發問前請先找找舊文章 ]---
swordsman
一般會員


發表:8
回覆:22
積分:6
註冊:2003-03-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-25 10:04:12 IP:140.138.xxx.xxx 未訂閱
謝謝大家的幫忙... 我還遇到一個問題,在我的程式當中修改Baud Rate之後,造成當機無法抓值。 其中使用C++Builder與RS232中介紹的方式,接收的方式是timer做連續接收,我懷疑是timer不夠快以致於無法抓取硬體丟出的值,但是以超級終端機就可以抓值,是否有不需要經由Timer即可隨時抓取RS232值的方式啊?    PO錯版造成困擾,很抱歉,我正在熟悉環境,請多包涵...  :)
turboted
版主


發表:95
回覆:754
積分:452
註冊:2002-07-23

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-25 17:42:58 IP:61.30.xxx.xxx 未訂閱
您好,我想,你所說的是文x出版社出的那本書吧 裏面的方法我用過,並沒有當機和少收的問題 不過我覺的他的做法比較麻煩 建議您可使用TurobPower 的ApdComPort 現在是免費的vcl..還滿好用的,目前我就是用這個
swordsman
一般會員


發表:8
回覆:22
積分:6
註冊:2003-03-04

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-25 23:35:18 IP:140.138.xxx.xxx 未訂閱
引言: 您好,我想,你所說的是文x出版社出的那本書吧 裏面的方法我用過,並沒有當機和少收的問題 不過我覺的他的做法比較麻煩 建議您可使用TurobPower 的ApdComPort 現在是免費的vcl..還滿好用的,目前我就是用這個 不好意思... 請問那邊可以Download,我進他們公司網站下載後, 執行EXE檔並沒有東西阿... 填寫資料認證也無回應... http://www.turbopower.com/foundry/downloads/
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-03-26 09:39:45 IP:61.218.xxx.xxx 未訂閱
參考這裡看看 TurboPower Open Source http://sourceforge.net/users/tpsfadmin/    聯盟----Visita網站http://www.vista.org.tw ---[ 發問前請先找找舊文章 ]---
properwu
一般會員


發表:17
回覆:21
積分:7
註冊:2003-03-14

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-04-25 16:06:04 IP:210.67.xxx.xxx 未訂閱
引言: 參考這裡看看 TurboPower Open Source http://sourceforge.net/users/tpsfadmin/ 聯盟----Visita網站http://www.vista.org.tw ---[ 發問前請先找找舊文章 ]---
版主您好 問個蠢問題 如何在http://sourceforge.net/users/tpsfadmin/ 下載元件呀 我似乎不得其門而入 好像掉入茫茫大海
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-04-25 16:25:06 IP:61.218.xxx.xxx 未訂閱
引言: 版主您好 問個蠢問題 如何在http://sourceforge.net/users/tpsfadmin/ 下載元件呀 我似乎不得其門而入 好像掉入茫茫大海 < face="Verdana, Arial, Helvetica"> TurboPower Async Professionalv4.06: http://sourceforge.net/projects/tpapro/ 聯盟----Visita網站http://www.vista.org.tw ---[ 發問前請先找找舊文章 ]---
swordsman
一般會員


發表:8
回覆:22
積分:6
註冊:2003-03-04

發送簡訊給我
#13 引用回覆 回覆 發表時間:2003-05-12 14:55:11 IP:140.138.xxx.xxx 未訂閱
在請問個問題,我用文x出版社出的那本書的Thread方式做接收, 似乎沒什麼大問題了,不過在RUN時只要滑鼠移到Form上任一位置,就會造成接收lag有沒有辦法解決啊...(其他Button上或Form外就o.k.!!) 跟Form動作有關的似乎只有用到這: void __fastcall TForm1::FormCreate(TObject *Sender) { lblDate->Caption = DateToStr(Date()); //show Date Read232 = new TReadThread(true); Read232->FreeOnTerminate = true; //Terminated時自行摧毀 }
系統時間:2024-04-27 5:25:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!