Special
» 2014年08月28日 00時00分 UPDATE

宮崎 仁のマイコン基礎の基礎:第23回 MSP430 LaunchPadでキッチンタイマを作ろう 〜完成編〜

[PR/EDN Japan]
PR

 前回に引き続いて、最大99分50秒の時間を設定できるキッチンタイマを設計・製作します。マイコンボードは、テキサス・インスツルメンツ(TI)のMSP430™ LaunchPadバリュー・ライン開発キットを使用します。

システムのプログラムを実装する

mm140828_ti1.jpg 図1 宣言と初期化、メイン

 前回ハードウェア回路を完成しましたので、今回はシステムに必要なプログラムを作成して実装します。長くなってきたので、いくつかに分割して説明します。

 図1に、変数や関数の宣言、初期化ルーチン、メインルーチンを示します。

 今回のシステムでは、4msごとにタイマ割り込みが発生して、その割り込みサービスルーチンの中ですべての処理を行います。メインルーチンは、システムを初期化した後はすぐに省電力モードに入るので、割り込み発生時以外はほとんど電力を消費せず、バッテリ動作でも長時間動作させることができます。

 図2に、割り込みサービスルーチンを示します。

 割り込みサービスルーチンの中では、まず毎回共通の処理としてLEDのダイナミック点灯と、スイッチ検出の処理を行います。さらに、そのときの動作モードに応じて必要な処理を行います。

mm140828_ti2.jpg 図2 タイマ割り込みサービス

 動作モードは、アイドルモード(mode=0)、カウントダウンモード(mode=1)、お知らせモード(mode=2)、D3設定モード(mode=3)、D2設定モード(mode=4)、D1設定モード(mode=5)の6種類です。モード間の状態遷移図を図3に示します。

mm140828_ti3.jpg 図3 モード間の状態遷移図

 各回の割り込みの前半部分(関数swsense())で、スイッチが押されたかどうか、押されたのはどのスイッチかを検出して、フラグを立てます。スイッチは桁選択スイッチ、数値選択スイッチ、スタート/ストップスイッチの3個で、それぞれに対応してsdig(桁スイッチ検出フラグ)、snum(数値スイッチ検出フラグ)、ssta(開始スイッチ検出フラグ)の3個のフラグが用意してあります。

 フラグが立ったままで割り込みサービスルーチンを抜けると、次の割り込みでそのスイッチがまた押されたと認識してしまいますから、最後にフラグを解除して割り込みサービスルーチンを抜けます。

個々の関数の処理

 ここでは、タイマ割り込みサービスルーチンの中の処理をいくつかの関数に分割しています。これは、プログラムの可読性を高めるためだけであって、関数化しなくてもかまいません。

 図2のタイマ割り込みサービスルーチンでは、まず共通の処理としてダイナミック点灯(dynamic())とスイッチ検出(swsense())の2つの関数を呼び出しています。その後、switch文を用いてモードごとの処理を行っています。

 ダイナミック点灯の部分は前々回に説明しているので、スイッチ検出の部分を図4に示します。

mm140828_ti4.jpg 図4 スイッチ検出の部分

 3個のスイッチを一括してチャタリング除去(sb1とsb2が一致したらチャタリングなしと判定)を行います。さらに、前回のチャタリング除去後の値(snc)がBIT4(桁スイッチ)、BIT5(数値スイッチ)、BIT6(開始スイッチ)ともすべて1(押されていない)のとき、今回の値(sb1)がそれと異なっていれば、どれかのスイッチが押されたと判定して対応するフラグを立てます。最後に、今回のチャタリング除去後の値をsncに保存します。

mm140828_ti5.jpg 図5 モードごとの処理

 次に、モードごとの処理の部分を図5に示します。

 モード0はアイドルモードで、スイッチによるモード移行処理だけを行います。開始スイッチが押されたらモード1に、桁スイッチが押されたらモード3に移行します。

 モード1はカウントダウンモードで、開始スイッチが押されたらモード0に移行しますが、それ以外の場合は1秒の判定とカウントダウン動作を行います。カウントダウンによって残り時間が0秒になったらモード2に移行します。

 モード2はお知らせモードで、カウントダウンによって残り時間が0秒になったときだけこのモードになります。LEDを点滅したら、モード0に戻ります。

 モード3〜5は数値設定モードで、10分の桁(D3)⇒1分の桁(D2)⇒10秒の桁(D1)の順に設定したらモード0に戻ります。各桁の設定モードで、数値スイッチが押されたらその桁の数値を1増やし、桁スイッチが押されたら次の桁に移行します。

 これで、キッチンタイマの設計が完成しました。


MSP430 超低消費電力マイコン・ファミリ
MSP430 LaunchPadバリュー・ライン開発キット
新FRAMマイコン:「MSP430FR5969」
TIのマイコン製品
■TIのツールの購入はこちらから:TI eStore


※MSP430はTexas Instruments Incorporatedの商標です。その他すべての商標および登録商標はそれぞれの所有者に帰属します。


Copyright © ITmedia, Inc. All Rights Reserved.


提供:日本テキサス・インスツルメンツ株式会社
アイティメディア営業企画/制作:EDN Japan 編集部/掲載内容有効期限:2015年3月31日

設計に役立つヒント集

宮崎 仁のQ&Aでよく分かるマイコン基礎の基礎:
第24回 割り込みっていろいろあるのですか?どんな種類があるか教えてください。

今回は、外部割り込み、内部割り込み、ソフトウェア割り込みについて詳しく解説しています
全文を読む


電源IC選択のヒント集
電源IC 使用時の注意点をわかりやすく説明しているほか、使用時に発生する可能性のあるさまざまなトラブルとその対処法についても紹介しています。ぜひご利用ください。ダウンロードには myTI アカウントが必要です。
Part 1をダウンロード
Part 2をダウンロード


アナログ回路設計式一覧ポケット・ガイド
日本語版 PDF

英語版で高い評価を受けてきたポケット・ガイドの日本語版が完成しました。基板レベルやシステム・レベルの回路設計でよく使われるアナログ設計式を紹介しています。ダウンロードには myTI アカウントが必要です。
ダウンロード



facebook & twitter

製品情報、セミナーや展示会などのイベント情報をお知らせしています。

RSSフィード

EDN 海外ネットワーク

All material on this site Copyright © ITmedia, Inc. All Rights Reserved.
This site contains articles under license from UBM Electronics, a division of United Business Media LLC.