GUPPYサンプルプログラム 湯浅将英 (c)1997-1998 Masahide Yuasa ファイル構成は以下のとおり。 gpy_dosa.c キット添付のguppydos.cを改良したもの readme.txt 本ドキュメント t.cfg 設定ファイル(参考用) t7.c 温度測定プログラム vl7.c 電圧測定プログラム *これらのソースを利用してプログラムを作ることは、自由におこなって結 構です。ただし利用した場合は上記のプログラムを利用したことをお書きく わえください。 *!!!注意!!! これらのプログラムの使用は各自の責任のもとにおこなってください。プロ グラム中に予期せぬバグやミスが含まれているかもしれません。そのときの 結果については一切責任は負わないものとします。 また、ミスが見つかった場合はメールにてお知らせください。 *対応機種 対応機種は、DOSでエスケープシーケンスに対応したものです。 動作確認機種 HP100LX(MS-DOS) 組立DOS/V(WINDOWS95上のDOS窓、およびcommand prompt) NEC98NOTE(MS-DOS)(コンパイル時に「98」を指定。) *ソースの説明 [gpy_dosa.c] キット添付のguppydos.cを改良したものでLSI−C対応にしました。 outport,inport部分の一部追加変更と、LSI−Cではコメントに”//”が 使えないのでそれを修正しました。 [vl7.c] 電圧測定用、テキスト拡大文字機能付き [t7.c] 温度測定用較正可能、テキスト拡大文字機能付き これらはキット添付のサンプルプログラム「guppytest.c」を元に作成した プログラムのソースです。お持ちのコンパイラでコンパイルしてください。 *以下、vl7.cとt7.cの説明です。 #電圧測定表示のプログラムvl7 オプション説明 >vl7 [com] [ch] [moji] [cls] [com]comポート(1-4)。 [ch]表示したいチャンネル(0-7)。 [moji]拡大文字表示、a..."*"で表示、b..."■"で表示、 n...表示しない。 [cls]起動時、画面をクリアする(c)、しない(n)。 デフォルトでは、>vl7 1 0 n nになっています。 また、オプションの順番はかえられません。 ([cls]でcを指定するときは[com][ch][moji]も指定しなければなりません) 例 comポート1、チャンネル1、”*”で表示、画面クリアする。 >vl7 1 1 a c 画面は以下のようになる。 [ここから]---------------------------------------------------------- ch0 = 1325 mV * * ********** ********** ********** * * * * * * * * * * * * * * * ********** * ********** ********** ********** * * * * * * * * * * * * * * * * * ********** ********** ********** (以下空行略) [ここまで]---------------------------------------------------------- [moji]オプションをbにすると以下のようになる。 [ここから]---------------------------------------------------------- ch0 = 1321 mV   ■       ■ ■■■■■ ■■■■■ ■■■■■   ■       ■     ■     ■     ■   ■       ■     ■     ■     ■   ■       ■     ■     ■     ■ ■■■■■     ■ ■■■■■ ■■■■■ ■■■■■   ■       ■     ■ ■     ■   ■       ■     ■ ■     ■   ■       ■     ■ ■     ■   ■       ■ ■■■■■ ■■■■■ ■■■■■ (以下空行略) [ここまで]---------------------------------------------------------- *一部の機種の画面モードにおいて、「画面クリアのエスケープシーケンス 」を動作させると画面に縦線が走るものがあるので、その場合はオプション で画面をクリアせずに、かわりにコマンドラインにて「cls」で画面をクリ アしてから実行してください。 *[moji]で「b」を選ぶ場合は、全角の■が表示できる機種(環境)でないと 表示できません。このマニュアルにおける”■”も環境によっては正しく表 示できていないかもしれません。 (注意:マニュアル中では少し編集してあります。) *ちなみにオプション「a」はアスタリスクの略、「b」はBOXの略のつも りです。 *(余談)HP100LX用にグラフィック表示できるものも作ったのですが、グ ラフィック表示させると動作が遅くなってしまうことと、機種依存してしま うことから止めてしまいました。 #温度測定表示のプログラムt7 「アプリケーション・アイディア集」3ページにある回路用に作ったプログ ラムです。原理は、チャンネル電圧値をとるところまでは前述のプログラム と同じですが、そのあと、較正(どのくらいの温度でどのくらいの電圧値に なるかの計算)をし、表示するようにしています。ただ、その計算が面倒な ので、次のようにしました。 電圧と温度の関係に y=a*x+b という式を使います。yは温度、xは電圧。あと残りのa,bを決めなければなり ません。これが較正です。これを決めるためにプログラムでは、2つの方法 が使えるようにしました。 方法その1、別の計算ソフトを使って計算した結果をプログラムに指定する。 要するに、他のソフトでa,bを計算します。いくつかの電圧値と温度を とり、最小二乗法などでa,bを決めます。プログラムは、ファイル名「t.cfg」 から値を読み出します。「t.cfg」の中身は次のようにします。 1 -0.6 590 はじめの「1」は「方法その1を使う」ということをあらわし、「-0.6」はa、 「590」はbをあらわします。これだけです。 方法その2、2つの測定結果からプログラムが計算する。 その1の方法はいくつか取った結果から較正しますが、この方法は2つの結 果から行なう気軽な方法です。たとえば 電圧値 923mV 温度20度 電圧値 890mV 温度40度 と2個所だけ測定し、これを「t.cfg」に指定します。中身は次のとおり。 2 923 20 890 40 「2」は「方法その2を使う」ということをあらわし、「923 20」は、 「電圧値 923mV 温度20度」、「890 40」は「電圧値 890mV 温度40度」をあ らわします。プログラムが2つの値からa,bを計算します。もし2つの値が 同じだと計算できないのでエラーになります。 本当はプログラムで複数データから較正できればいいのですが(手抜き)。 オプションは電圧測定のものと同じです。 以下に表示例を示します。a,bも表示されます。 [ここから]---------------------------------------------------------- ch1 = 933 mV T= 20 a=-0.600000 b=580.000000 * ********** ********** ********** * * * * * * * * * * * * * * * * * * ********** * * ********** * * * * * * * * * * * * * * * * * * * * * ********** ********** ********** (以下空行略) [ここまで]---------------------------------------------------------- [ここから]---------------------------------------------------------- ch1 = 932 mV T= 20 a=-0.600000 b=580.000000   ■         ■■■■■ ■■■■■ ■■■■■   ■         ■   ■     ■ ■   ■   ■         ■   ■     ■ ■   ■   ■         ■   ■     ■ ■   ■ ■■■■■       ■   ■ ■■■■■ ■   ■   ■         ■   ■ ■     ■   ■   ■         ■   ■ ■     ■   ■   ■         ■   ■ ■     ■   ■   ■         ■■■■■ ■■■■■ ■■■■■ (以下空行略) [ここまで]---------------------------------------------------------- 以上です。