USBSPYDER08を使ってみよう(独立したアプリケーションを作成-中編) (連載6回)
今回は、前回作成した小型ディジタル温度計のソフトウェアを作成します。
= 新規プロジェクトを作成する =
今回もProcessor Expertのビーンを利用してプログラムを書きます。
まず、CodeWarriorとProcessorExpertを使って、新しいプロジェクトを作成します。プロジェクト・ウィザードでは、以下のように設定し、「完了」ボタンをクリックします。
このアプリケーションでは、温度の計算に64ビットの浮動小数点数を使用しています。
すると、新しいプロジェクトが作成され、使用するマイコンのパッケージと使い方を選択するダイアログが現れます。
ここで使用するのは、16ピンDIPパッケージのMC9S08QG8です。"MC9S08QG8CPB 16-pins PDIP"を選択します。
このアプリケーションも、デバッグ状態で使用するので、Debugだけをチェックします。
これでプロジェクトの準備は完了です。
= A-Dコンバータ・ビーンを設定する =
このアプリケーションでは、A-Dコンバータで内部バンドギャップと温度センサの出力を取得して、この二つの値から温度の計算を行います。
右下にある"Bean Selector"(ビーンの選択)サブウィンドウから
"Measurement" (測定)-
"Measure, prepare or compare analog signal" (アナログ信号の測定と比較)-
"Measure analog input" (アナログ入力の測定) をダブルクリックで選択していき、ADC(A-Dコンバータ)ビーンを呼び出します。
ビーンの属性を以下のように設定します。
属性の設定は、"ADVANCED"(高度な機能)モードで行ってください。これは、測定精度を上げるために複数回測定の機能を使用しているためです。
何とかして変換精度を得るために、"ADC clock source"(A-D変換クロック源)にA-D変換専用の"AsynchroClock"(非同期クロック)を使用し、"Conversion time"(A-D変換の時間)を最長の46マイクロ秒に設定しています。
さらに、アナログ電圧を取り込むための"Sampling time"(サンプル時間)も"long"(長い)にしています。
また、分解能を上げるために、"Number of conversion"(変換回数)に"64"を指定し、A-D変換64回分の平均を16ビットの値で返すようにしています。
メイン・プログラムでは、この値の128回分の平均を求めているので、合計でA-D変換8192回分の平均を使って計算を行っていることになります。
以上でADCビーンの設定は完了です。
= LEDにバイト入出力ビーンをつなぐ =
このアプリケーションでは、7セグメントLEDに温度を表示します。
このLEDは、8ビットのポートにそのまま接続されているので、バイト単位で制御を行うことのできるバイト入出力(ByteIO)ビーンを使います。
右下にある"Bean Selector"(ビーンの選択)サブウィンドウから
"Digital input/output" (ディジタル入出力)-
"Standard I/O" (標準的な入出力)-
"One 8-pin port" (8端子ポートを一つ)
をダブルクリックで選択していき、ByteIO(バイト入出力)ビーンを呼び出します。
ビーンの属性を以下のように設定します。
このビーンは、出力専用で使用します。初期値をすべての出力がVDDレベルになるように"255"としているので、リセット後はLEDが消灯します。
次にメソッドを選択します。
数あるメソッドのうち、今回は"PutVal"(値設定)ビーンだけを使用します。
以上でByteIOビーンの設定は完了です。
= Cpuビーンのメソッドを有効にする =
ビーンを設定した後で作成するユーザプログラムでは、Cpuビーンに属する"Delay100US"(100usec単位で遅延させる)というメソッドを使用します。
そのため、あらかじめこのメソッドのコードを生成させるように設定しておきます。
左の"Project Panel"(プロジェクト・パネル)で"Cpu:MC9S08QG8CPB"をクリックし、中央の"Bean Inspector"(ビーンの検査官?)の"Methods"(メソッド)タブをクリックします。
そして、"Delay100US"を"generate code"(コードを生成させる)に設定します。
= スタック領域を拡張する =
ProcessorExpertでMC9S08QG8のプロジェクトを作成したときのスタック容量は、64バイトになっています。浮動小数点演算を行うプログラムを記述するとスタックを消費するので、初期値の64バイトでは不足してしまいます。
そこで、128バイトに拡張しておきます。
中央の"Bean Inspector"(ビーンの検査官)の
"Build options"(構築時オプション)タブをクリック。
そして、"Generate PRM file"(リンク・ファイルを生成する)-
"Stack specification"(スタックの仕様)-
"Stack size"(スタック容量)
を"80"(16進数の80)に設定します。
以上でビーンの設定はおしまいです。
ビーンの設定が終わったら、メニュー・バーから"Project" - "Make"を選択するか、F7ボタンを押してコードの生成とコンパイルを行います。
これで、プログラムのひながたができました。
次回は、アプリケーション・ソフトウェアの核となるメイン・プログラムを記述して、小型ディジタル温度計を完成させます。
田中範明
タグ:
ビーン
投稿者: yoshida 日時: 2007年8月10日 10:02 | パーマリンク |TOPページへ ▲画面上へ
トラックバック
このエントリーのトラックバックURL: http://www.eleki-jack.com/mt/mt-tb.cgi/483
URL:
この情報を登録しますか?