Board behaviors
ボードビヘイビアは、TWELITE無線マイコンに接続したハードウェアを取り扱うための手続きが含まれます。
定数の定義(ピン番号など)
ハードウェアの初期化
センサー等の取り扱い
標準アプリケーションApp_Tweliteと同じ配線を想定したボードビヘイビアです。定数定義と、M1-M3,BPSピンの読み出し機能があります。
以下の定数を定義しています。BRD_APPTWELITE::PIN_DI1
のようにアクセスできます。
static const uint8_t PIN_DI1 = mwx::PIN_DIGITAL::DIO12;
static const uint8_t PIN_DI2 = mwx::PIN_DIGITAL::DIO13;
static const uint8_t PIN_DI3 = mwx::PIN_DIGITAL::DIO11;
static const uint8_t PIN_DI4 = mwx::PIN_DIGITAL::DIO16;
static const uint8_t PIN_DO1 = mwx::PIN_DIGITAL::DIO18;
static const uint8_t PIN_DO2 = mwx::PIN_DIGITAL::DIO19;
static const uint8_t PIN_DO3 = mwx::PIN_DIGITAL::DIO4;
static const uint8_t PIN_DO4 = mwx::PIN_DIGITAL::DIO9;
static const uint8_t PIN_M1 = mwx::PIN_DIGITAL::DIO10;
static const uint8_t PIN_M2 = mwx::PIN_DIGITAL::DIO2;
static const uint8_t PIN_M3 = mwx::PIN_DIGITAL::DIO3;
static const uint8_t PIN_BPS = mwx::PIN_DIGITAL::DIO17;
static const uint8_t PIN_AI1 = mwx::PIN_ANALOGUE::A1;
static const uint8_t PIN_AI2 = mwx::PIN_ANALOGUE::A3;
static const uint8_t PIN_AI3 = mwx::PIN_ANALOGUE::A2;
static const uint8_t PIN_AI4 = mwx::PIN_ANALOGUE::A4;
DIP SW (M1 M2 M3 BPS) ピンの値を取得するためのメソッドが用意されています。
inline uint8_t get_M1()
inline uint8_t get_M2()
inline uint8_t get_M3()
inline uint8_t get_BPS()
inline uint8_t get_DIPSW_BM()
戻り値はHIGH, LOWではなく、0
がセットされていない(HIGH側)、1
がスイッチがセットされる(LOW側)という意味です。
get_DIPSW_BM()
は、bit0から順にM1,M2,M3,BPSピンの値を返します。
この値はシステム起動時に確認されて以降は、スイッチを操作しても更新されません。
MONOSTICK用のボードビヘイビアです。内蔵ウォッチドッグタイマーの制御とLED点灯用の手続きが含まれます。
以下の定義が利用可能になります。
const uint8_t PIN_LED = mwx::PIN_DIGITAL::DIO16; // LED
const uint8_t PIN_WDT = mwx::PIN_DIGITAL::DIO9; // WDT (shall tick < 1sec)
const uint8_t PIN_WDT_EN = mwx::PIN_DIGITAL::DIO11; // WDT (LO as WDT enabled)
const uint8_t PIN_LED_YELLOW = mwx::PIN_DIGITAL::DO1; // YELLOW LED
MONOSTICK::PIN_LED
のようにアクセスできます。
pinMode(PIN_LED, OUTPUT_INIT_HIGH);
pinMode(PIN_WDT, OUTPUT_INIT_LOW);
pinMode(PIN_WDT_EN, OUTPUT_INIT_LOW);
pinMode(PIN_LED_YELLOW, OUTPUT);
上記のコードのように各ピンが初期化されます。
起動時、スリープ起床時、起動後一定時間経過後に外部のウォッチドッグタイマーを再セットします。
ウォッチドッグタイマーのタイムアウトは1秒です。
MONOSTICKでは通常スリープするアプリケーションを実行しませんが、その場合はMONOSTICK::PIN_WDT_EN
をHIGHにしてからスリープします。
void set_led_red(uint8_t mode, uint16_t tick)
void set_led_yellow(uint8_t mode, uint16_t tick)
LED(赤、黄)の制御を行います。
ボードビヘイビアでの制御を行わない場合は、このメソッドを呼び出さないでください。
黄色のLED(MONOSTICK::PIN_LED_YELLOW
)はSPIMISOピン(半導体のピン名DO1)です。本ボードビヘイビアではPWM制御による点灯用のメソッドや手続きは含まれません。必要に応じて以下の記述を行います。
set_led_yellow()
は呼び出さないようにして下さい。
始動後にPWM出力の初期化を別途行います。SPIMISOピンはApp_Twelite標準アプリケーションではPWM3に対応し、Timer3クラスオブジェクトにより制御できます。
スリープ復帰後にPWM出力の初期化を別途行います。その際、DO1の出力設定を解除します。
PWM設定前にDO1の出力設定を解除してください。
pinMode(PIN_LED_YELLOW, DISABLE_OUTPUT);
黄色のLED(MONOSTICK::PIN_LED_YELLOW
)は、スリープ中に点灯させることはできません。
mode
は以下のパラメータを取ります。tick
は点灯時間[ms]を指定しますが、詳細はmode
の解説を参照してください。
指定
意味
LED_TIMER::BLINK
LEDを点滅させます。tick
に与える時間[ms]ごとにON/OFFが切り替わります。スリープ復帰後はカウントをリセットし点灯状態から始まります。
LED_TIMER::ON_RX
パケットの受信時にtick
に与える時間[ms]だけ点灯します。
LED_TIMER::ON_TX_COMP
送信完了時にtick
に与える時間[ms]だけ点灯します。
Loading...
環境センサーパル AMBIENT SENSE PAL のボードビヘイビアです。
共通定義に加えボード上のセンサーを取り扱えるようになっています。
温湿度センサー SHTC3
照度センサー LTR308ALS
void setup() {
auto&& brd = the_twelite.board.use<PAL_AMB>();
}
SHTC3センサーのオブジェクトです。
LTR308ALSセンサーのオブジェクトです。
開閉センサーパル OPEN-CLOSE SENSE PAL のボードビヘイビアです。
void setup() {
auto&& brd = the_twelite.board.use<PAL_MAG>();
}
開閉センサーパルのセンサーは磁気センサーで、2本の信号線の割り込みの入力のみです。
const uint8_t PAL_MAG::PIN_SNS_NORTH = 16;
const uint8_t PAL_MAG::PIN_SNS_OUT1 = 16;
const uint8_t PAL_MAG::PIN_SNS_SOUTH = 17;
const uint8_t PAL_MAG::PIN_SNS_OUT2 = 17;
PAL_MAG::PIN_SNS_NORTHはセンサーがN極を検出したとき、PAL_MAG::PIN_SNS_SOUTHはセンサーがN極を検出したときに割り込みが入ります。
スリープ前に以下の設定をしておきます。
pinMode(PAL_MAG::PIN_SNS_OUT1, PIN_MODE::WAKE_FALLING);
pinMode(PAL_MAG::PIN_SNS_OUT2, PIN_MODE::WAKE_FALLING);
起床時に起床要因のIOを確認します。
uint8_t b_north =
the_twelite.is_wokeup_by_dio(PAL_MAG::PIN_SNS_NORTH);
uint8_t b_south =
the_twelite.is_wokeup_by_dio(PAL_MAG::PIN_SNS_SOUTH);
Loading...