• 検索結果がありません。

メイン処理

ドキュメント内 RL78/G11 電圧計 (ページ 32-35)

5.7 フローチャート

5.7.11 メイン処理

5.12

~図

5.14

にメイン処理のフローチャートを示します。

図 5.12 メイン処理(1/3)

main()

LCDに起動時の1行目の初期表示を行う

1秒タイマ停止 TSTART00ビット ← 0 :8ビットIT停止

ITMK00ビット ← 1 :8ビットIT割り込み禁止

STOP

SW割り込み許可 PIF0ビット 0 : INTP0割り込み要求クリア

PMK0ビット ← 0 : INTP0割り込み許可

B

ユーザ初期化処理

InitialiseDisplay () 追加の初期設定

LCD起動時表示 DisplayString () A

LCDの2行目の表示を行う LCD表示

DisplayString ()

TT0Lレジスタ ← 0x08:TM03停止 TM03停止

STOPモードでSW押下割り込み(INTP0)待ち INTP0(STOPモード解除)

測定完了待ち g_times=0,32,+1

測定完了待ち

HALT HALTモードで32回の測定完了待ち

STOPか ? No

Yes

変数g_stpcntが20以上ならSTOPモードに入り,INTP0を待つ

g_vmax > 937 ? No

Yes

変数g_vmaxが937を超えると、電圧オーバー

2行目表示を”OVER”に 電圧オーバーを表示して戻る

TM03起動

TS0Lレジスタ ← 0x08:TM03起動

図 5.13 メイン処理(2/3)

レンジ1を選択

C B

変数g_range ← 1 :測定レンジを1に設定

PM01,PM00ビット ← 0,0 :1/10分割抵抗をオン PM31,PM30ビット ← 1,1 :1/100分割抵抗をオフ

レンジ0を選択

測定完了待ち g_times=0,32,+1

測定完了待ち

HALT HALTモードで32回の再測定完了待ち

No

Yes g_vmax > 9 ? No

Yes

変数g_range ← 0 :測定レンジを0に設定

PM31,PM30ビット ← 1,1 :1/100分割抵抗をオフ

変数dtc_controldata_0.dtdar 0xFE00 : 転送先アドレスを 0xFFE00に設定 変数dtc_controldata_0.dtcct 0x04 : 転送数を4に設定 DTCEN16ビット ← 1 :A/D変換完了でのDTC起動を許可 DTCの再設定

制御変数の初期化 変数g_times 0 :測定回数を0に設定 変数g_vin_sign ← 0x00 :符号の初期化

変数g_sign_chng1 ← 0x00 :ゼロクロス点のクリア 変数g_sign_chng2 ← 0x00 :ゼロクロス点のクリア 変数g_sign_chng3 ← 0x00 :ゼロクロス点のクリア 変数g_vmax ← 0x00 :最大値のクリア

TM01を起動 目標レンジでのA/D変換のためにA/Dトリガ用のTM01を起動

目的レンジでの32回の再測定完了

変数g_vmaxが93 を超えると100Vレンジ(レンジ2)

変数g_vmaxが9を超えると10Vレンジ(レンジ1),それ以下な ら1Vレンジ(レンジ0)

レンジ1及びレンジ0の場合には再測定 g_vmax ≦ 93 ?

図 5.14 メイン処理(3/3)

パラメータ初期化

A C

変数g_start g_sign_chng2 :開始位置を設定

変数g_period ← g_sign_chng3 - g_sign_chng2 + 1 :データ数 表示も初期化しておく

不要な0表示を消す ゼロクロス点は2つ以上か ?

No

Yes

変数g_voltage ← _r_rms16(g_start,g_period)

:設定範囲のデータの自乗平均平方根を求める

レンジ2なら4ビット,レンジ1なら2ビット左シフト 結果の補正

100mV桁表示 変数v_workを10で割り,剰余を100mV桁に表示

10mV桁表示

測定結果から自乗平均平方根の対象を求める

変数g_start ← 12 :対象の開始位置を設定 変数g_period ← 20 :対象個数の初期値を設定

パラメータ設定

変数g_sign_chng2が0x00以外ならゼロクロス点が2つ以上

自乗平均平方根 _r_rms16 ()

測定結果をASCII文字列に変換して表示する

結果を10で割り,剰余を10mV桁に表示,商は変数v_workに格納

1V桁表示 変数v_workを10で割り,剰余を1V桁に表示

10V,100V桁を空白に v_work

=0x00 >9

それ以外

10V,100V桁表示 10V桁表示100V桁空白に

結果は20mV以上か ? No

Yes カウンタ初期化

STOPモードカウンタ更新 変数g_stpcntをカウントダウン

変数g_stpcnt ← 20 :カウンタを初期化

ドキュメント内 RL78/G11 電圧計 (ページ 32-35)

関連したドキュメント