So-net無料ブログ作成
検索選択

Lazurite 920Jを立ち上げてみる 其の6 #LAZURITE920J #ラピスセミコンダクタ [Lazurite]

lazuriteImage_003.jpg

外部から低消費電力状態を解除したい!

sleep関数は時間が来ると低消費電力状態から解除されますが、それ以外に外部からこの低消費電力状態を解除したい時も多いかと思います。

この様な場合、wait_event関数を使う様です。
以下にサンプルを上げておきます。
Arduino同様外部割り込み端子として2番と3番が使用できますが、今回は2番に押しボタンスイッチを接続しています。
#define BLUE_LED       26
#define RED_LED        20
#define YELLO_LED      25

bool eventFlag = false;

void pin2Int( void )
{
  eventFlag = true;
}

void setup(void)
{
  pinMode( BLUE_LED, OUTPUT );
  pinMode( 2, INPUT_PULLUP );
  attachInterrupt( 0, pin2Int, FALLING );
}

void loop(void)
{
  digitalWrite(BLUE_LED, LOW);
  delay( 500 );
  digitalWrite(BLUE_LED, HIGH);
  eventFlag = false;
  wait_event( &eventFlag );
}

端子割り込みの中でbool型のフラグをtrueにしているだけの簡単なプログラムですね。

※低消費電力状態に入るとPower LEDは消灯されるが、青LEDは直前の端子の状態を維持している模様。

※では時間と外部割り込みの併用はできるのか?
先ほどのコードの wait_event( &eventFlag ); を sleep( 10 * 1000UL ); に変更してみましたが、外部割り込みでは起きない様です。うーん、、、一応sleepのマニュアルでは外部割り込みは有効と書いてあるので、低消費電力状態の解除方法が提供されていれば良いのですけれどね。


nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

この記事のトラックバックURL:
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。