はじめまして、ソフトウェア設計課の岩井と申します。
ソフトウェア設計課では、専用基板を制御するための組込みソフトウェアを多く作成しています。
その中で、今回は組込みソフトウェアを作成するときのポイントについて話をさせていただきます。
組込みソフトウェアで最も重要な性能はリアルタイム性(プログラムを停止させない/イベントをなるべく早く実行する)です。
例えば、WebなどでLEDの点滅(通称Lチカ)のサンプルプログラムを探すと、図1のようなものを目にします。しかし、組込みソフトウェアを作成するときに、図1のサンプルプログラムを参考にすることはオススメできません。簡単にLチカが理解できるように作られているため、拡張性がありません。というのは、「1秒待ち」の処理はマイコンがただ時間を待っているだけだからです。
図1 LED点滅フロー
組込みソフトウェアを作成するときのポイントは、リアルタイム性の確保:「常に流れるように」作成することです。
「常に流れるように」作るにはどうしたら良いでしょうか?それは割込み機能を使うことです。
割込み機能はマイコンに搭載されている機能で、条件が合致したときに指定の関数を呼び出すことができます。例えばタイマー割込みならメイン処理を実行中に時間がきたら「割込んで」別の処理をすることができます。
タイマー割込みを使って書き直したフローが図2です。
図2 タイマー割込みを使ったLED点滅フロー
タイマー割込みを1秒に設定すると、1秒ごとにタイマー割込み処理が動作します。
メイン処理は1秒経過したことをflagで検知できます。待つ必要がないので、キー入力や、通信処理といったいろいろな処理を続けて実行できます。
組込みソフトウェアを「常に流れるように」作成するために割込み機能を活用してみてください。
ワンランク上のソフトウェアが書けるようになります!
ソフトウェア開発でお困りの際は、WTIにお問合せ下さい。
*ちなみに、LEDの点滅にPWM制御を応用すれば、ホタルのような光り方も実現できますよ。
【関連リンク】
- Q-Learningでチーズパズルを解いてみました
- ESP32マイコンでOTA! Wi-Fiでプログラムを書き込む
- M5stackで簡易Wi-Fiチェッカーを作ってみました
- 無線モジュール搭載IoT機器の開発には幅広い知見と技術が必要です
- IoT化のお手伝い-ワンストップでアイデアを形にします
- 電気・ソフト設計受託サービス
- ソフトウエア設計受託サービス
- IoTのプロフェッショナルを顧客社内に育成する「テクノシェルパ」登場
- WTIブログ(IoT関連)
- 無線通信モジュールのコストを抑える方法とは
WTIメールマガジンの配信(無料)
WTIエンジニアが携わる技術内容や日々の業務に関わる情報などを毎週お届けしているブログ記事は、メールマガジンでも購読できます。ブログのサンプル記事はこちら
WTIメールマガジンの登録・メールアドレス変更・配信停止はこちら
WTIの技術、設備、設計/開発会社の使い方、採用関連など、幅広い内容を動画で解説しています。