• ベストアンサー

ATmega88でマイコン動作がフリーズする。

現在ATmega88マイコンを使っているのですが、パワーダウンモード機能で消費電流をおさえて、和入り込みINT1の入力の時だけウェークアップさせるようなプログラムを組んでいるのですが、この割り込みINT1を発生させても全く受け付けなくなる現象が発生しました(INT1のISRルーチンでLEDを点灯でウェークアップ動作を確認) 電源は3Vのリチウム電池を使用しています。 このような現象の対策として考えられることはありませんでしょうか? ご存じの方いらっしゃいましたら、ご教授の程よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • nakammo
  • ベストアンサー率34% (39/112)
回答No.1

こんにちは。 パワーダウン・モードからのウェークアップにレベル検出による割込みを使用する場合、ウェークアップ動作を行い、レベル検出による割込みを発生させるために十分長い時間にわたり検出に必要な電圧レベルが保持されていなければなりませんが、十分な時間確保されていますでしょうか? 必要な電圧レベルがスタート・アップ時間が終了する前になくなってしまった場合、MCUはウェークアップ動作は行いますが、割込みは発生しないようです。

techhouse
質問者

お礼

回答頂きありがとうございます。 現在Win avrCコンパイラでコーディングしています。 いつもパワーダウンモードに移行する場合に使用している関数なのですが、 void sleep_set(void) { WDTCSR &= ~(1 << WDIE); wdt_disable(); spi_signalpin_opendrain_active(); EIMSK |= (1<<INT0); sleep_mode(); wdt_enable(WDTO_4S); WDTCSR |= (1 << WDIE); } もし、スタートアップ時間を長くしたい場合は、sleep_mode();関数で パワーダウンモードに移行し、INT1割り込みが入ったら、その行から 下のプログラムを実行していくので、その下にディレー関数などを入れた方が良いのでしょうか? また、パワーダウンモードから復帰時に電圧を安定化させるために必要な時間はどのくらいでしょうか? 大変もうしわけありませんが、ご教授頂きますようよろしくお願いします。

関連するQ&A