mwf_common
mwf 共通定義
マイコンのペリフェラルを扱う手続きを C++ クラスとして、簡素化したものです。
定義済みオブジェクトが用意されており(例mwf::the_i2c0
はI2C0)、このオブジェクト経由で機能にアクセスします。定義済みオブジェクトはstd::unique_ptr<>
によるスマートポインタで、初回の初期化により実体を構築します。
このライブラリでは定義済みオブジェクトは、スリープ前、スリープ復帰時の手続きが含まれ、一括してスリープ前処理、復帰処理を行うことが出来ます。
ペリフェラルの多くは、初期化などの手続きが一体になっています。そのため、クラスオブジェクトとして、その生成から破棄までを管理します。
クラスオブジェクトは、全て std::unique_ptr<>
によるスマートポインタになっています。オブジェクトの生成前は nullptr
になっているため、いかなるアクセスも行えません(おそらくヌルポインタアクセスによりハングアップします)。利用時には nullptr
のチェックを挟むようにしてください。
if (the_adc) { // nullptr チェックをしてから
the_adc->enable((1UL << 0) | (1UL << 1));
the_adc->start();
}
オブジェクト名 | 説明 |
---|---|
the_adc | アナログディジタル変換(ADC)を利用する |
the_gpio | 汎用IO(GPIO)割り込みを利用する。(割り込みを利用しない場合はクラスオブジェクトは利用しません) |
the_i2c0 | I2Cバスを利用する。(I2C0のみ) |
the_ntag | NTAG用のEEPROMを利用する |
the_pwm[0..9] | PWM0..9を利用する |
the_rng | 乱数生成ライブラリ |
the_spi1 | SPIバスを利用する (SPI1のみ) |
the_wtimer | ウェイクアップタイマーを利用する |
the_wwdt | ウォッチドッグタイマーを利用する |
オブジェクト名 | 説明 |
---|---|
mwf_common | 共通定義、ペリフェラルオブジェクトの基底クラスの定義 |
mwf_periph_common | 共通定義、ピン操作のための手続き |
mwf_periph_adc | ADC利用のための手続き |
mwf_periph_gint | 汎用IO(GPIO)割り込み |
mwf_periph_i2c | I2Cバスを利用する。(I2C0のみ) |
mwf_periph_ntag | NTAG用のEEPROMを利用する |
mwf_periph_pwm | PWM0..9を利用する |
mwf_periph_rng | 乱数生成ライブラリ |
mwf_periph_spi | SPIバスを利用する (SPI1のみ) |
mwf_periph_wtimer | ウェイクアップタイマーを利用する |
mwf_periph_wwdt | ウォッチドッグタイマーを利用する |
原則として、以下の名前空間にクラスや関数を定義しています。
mwf::
mwf::periph::
mwf 共通定義
mwf_periph_common - ペリフェラル共通
mwf_periph_adc - ADC
mwf_periph_gint - GINT(GPIO)
mwf_periph_i2c - I2C
mwf_periph_ntag - NTAG
mwf_periph_pwm - PWM, Timer
mwf_periph_rng - TRNG
mwf_periph_spi - SPI
mwf_periph_wtimer - WTIMER, FRWT
mwf_periph_wwdt - WWDT
class tick_counter - Stop Watch
mwf-utils - utils