したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

■■■20レス以内で済むF-BASICの質問はこちらへ■■■

656名無しさん:2015/11/06(金) 11:03:33
>>654
WindowsやPC/AT機に時刻正確性を求められても・・

WAIT命令は100分の1秒単位ですが、

とりあえずはAPIのSleepEx関数を使うとか。一応は1ミリ秒単位の指定ですが。
https://msdn.microsoft.com/ja-jp/library/cc429359.aspx


計測間隔をできるだけ正確にということであれば、次のような感じでどうでしょう

・まず、プログラム変更
1.受信バッファを大きくする。
CM$="COM0:(S7N2N7NNN,RB4096)"
open CM$ for output as #2 : open CM$ for input as #1

2.送信コマンドをWAIT命令をはさんで一定間隔で連続で送る。
最低限の送受信時間からコマンド送信間隔を試算すると、
スタートビット(1)+データ長(7)+ストップビット(2)=計10bit
受信データ14*4フレーム+送信コマンド(2)=計58キャラクタ
580÷9600bps=約6〜7/100秒
※実際は計測器側の測定データ作成時間も必要なので、当然これよりは
時間がかかる。

for I%=1 to 50
print#2,"D";chr$(13);
wait 10
next I%

3.あとで一括して受信バッファから取得する。
for I%=1 to 50
line input#1,R$(0, I%)
line input#1,R$(1, I%)
line input#1,R$(2, I%)
line input#1,R$(3, I%)
next I%

・次に実行時
1.プログラムを起動する。ただし、まだ計測開始しない。
(このとき、F-BASIC開発環境経由ではなく、実行プログラムを直接起動すること)

2.タスクマネージャを呼び出して、[プロセス]のタブから当該実行プログラムを
探して、右クリック-[優先度の設定]-[高(H)]とか[リアルタイム(R)]に設定。
※少しでも正確性をあげるため。

3.計測開始を指示。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板