図3は、ソフトウェアの処理フローを表したものである。
マイクロコントローラの内部クロックは、Timer0を駆動する。Timer0は512マイクロ秒ごとにオーバーフローし、これが単位タイムスロットになる。このスロット周期でLEDを駆動する動作が行われる。8個の単位タイムスロットを1周期とし、最初のタイムスロットで回路上部の3個のLEDを駆動し、次のタイムスロットで下部の3個のLEDを駆動する。ソフトウェアを簡略化するために、残り6個のLEDは、残り6個のタイムスロットの1つ1つで順次駆動するようにした。
メインループの開始時には、クロックパルスをカウントし、Timer0がオーバーフローするまで待機する。オーバーフローが発生したら、設定されたタイムスロットに対応するLEDを出力ポートが駆動する。8個のタイムスロットが完了すると、各ポートが同一の状態にセットされる。200タイムスロットが経過したら、イグニッションコイルからの入力パルス数をカウントし、カウント数、すなわち入力周波数に対応するようLED点灯パターンを設定する。図4に、GP0、GP1、GP2の各ポートの出力波形の例を示した。
なお、このタコメーターは、120サイクル/秒の回転速度まで表示できる。
【アナログ機能回路】:フィルタ回路や発振回路、センサー回路など
【パワー関連と電源】:ノイズの低減手法、保護回路など
【ディスプレイとドライバ】:LEDの制御、活用法など
【計測とテスト】:簡易テスターの設計例、旧式の計測装置の有効な活用法など
【信号源とパルス処理】:その他のユニークな回路
Copyright © ITmedia, Inc. All Rights Reserved.