nRF52を使った省電力でステートマシンを実装する方法こんにちは。Calendar7日目の記事です。昨日に引き続き、よろしくお願いします。IoT製品の避けて通れない道「電池持ち・省電力」。今日のネタは、ここを強化する一つのメソッドです。nRF52があります。このChipで省電力で動作するステートマシンを実装する方法を紹介します。v2SDKに含まれているexamples/ble_peripheral/ble_app_uartのサンプルコードをベースにしてみます。*/シーケンス下記の動作になるコードを書いてみます。sd_app_evt_wait()呼び出しでsleepし、その間は省電力モードになります。割り込み(GPIOやタイマーなどのイベント)でmainがwakeupして、sd_app_evt_wait()の後から復帰します。ステートマシンのコード割り込みのコンテキストでは、イベントを配送するだけで、処理はなるべくしません。割り込み処理後、mainがコンテキストにスイッチし、polling()が呼ばれます。polling()では、イベントキューが空になるまでステートマシンにイベントを配送し、空になったら再びsleepします。イベントキューの実体。リングバッファとして利用。false;}イベントハンドラのコード処理はせず、ステートマシンにイベントを通知します。send_event(&e);}ステートマシンの実装方法は過去にこちらの記事でも紹介しています。コード前置きが長くなりましたが。ここに1行追加します。以下の例は、sleepしないので、省電力になりません。}終わりにいかがでしょうか。今回は必要なときだけwakeupしてステートマシンをドライブする方法を具体的に書いてみました。nRF52を使った省電力のテクニックは他にもいろいろあるので、またまとめてみたいと思います。Lamb...どうも、お久です。Creatorのkazuphです。Akerunつくったエンジニアのそこそこ大規模な組み込みプログラミングこんにちは。Adven...2017-12-04組込みCテストフレームワークUnityを導入してテストコード生産性をUp回路設計・ファーム開発担当のす〜(@ksksue)です。Storage)という簡易な...2016-12-24こんにちは、@taku33です。今回はiOSペリフェラルのデータ通信を中心に、実際の開発時に有益そ...こんにちは、@taku33です。(2)はてなブログをはじめよう!photosynth-incさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。