TWELITE CUE上のペリフェラルに対応するボードビヘイビアです。
ボード上の加速度センサー、磁気センサー、LEDを取り扱えるようになっています。
- 加速度センサー
- 磁気センサー
- LED
void setup() {
auto&& brd = the_twelite.board.use<CUE>();
}
加速度センサー
MC3630センサーのメンバーオブジェクト (sns_MC3630
) が定義されています。
磁気センサー
開閉センサーパルのセンサーは磁気センサーで、2本の信号線の割り込みの入力のみです。
const uint8_t CUE::PIN_SNS_NORTH = 16;
const uint8_t CUE::PIN_SNS_OUT1 = 16;
const uint8_t CUE::PIN_SNS_SOUTH = 8;
const uint8_t CUE::PIN_SNS_OUT2 = 8;
CUE::PIN_SNS_NORTH
はセンサーがN極を検出したとき、CUE::PIN_SNS_SOUTH
はセンサーがN極を検出したときに割り込みが入ります。
スリープ前に以下の設定をしておきます。
pinMode(CUE::PIN_SNS_OUT1, PIN_MODE::WAKE_FALLING);
pinMode(CUE::PIN_SNS_OUT2, PIN_MODE::WAKE_FALLING);
起床時に起床要因のIOを確認します。
uint8_t b_north =
the_twelite.is_wokeup_by_dio(CUE::PIN_SNS_NORTH);
uint8_t b_south =
the_twelite.is_wokeup_by_dio(CUE::PIN_SNS_SOUTH);
LED
set_led()
void set_led(uint8_t mode, uint16_t tick)
LED(D1)の制御を行います。
ボードビヘイビアでの制御を行わない場合は、このメソッドを呼び出さないでください。
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]だけ点灯します。 |
スリープ復帰後も復帰前の設定が維持されます。
led_one_shot()
void led_one_shot(uint16_t tick)
指定期間だけLEDを点灯します。set_led()
の機能と同時には使えません。
ウォッチドッグタイマー
起動時、スリープ起床時、起動後一定時間経過後に外部のウォッチドッグタイマーを再セットします。
ウォッチドッグタイマーをタイムアウトしないためにTWELITEを60秒以内の設定(キャリブレーション済み内部CRタイマー使用時)で起床してください。