以前に実験を行ったとき、実験中に非常に深刻な問題が発生しました。つまり、停止モードを起動できません。
実験の主な内容は次のとおりです。外部割り込み応答を使用して、プログラムをシャットダウンモードにします。次に、別の外部割り込みまたはアラーム割り込みを介して、マイクロコントローラをウェイクアップします。しかし、長い間デバッグする
停止モードに入るために使用される割り込みとウェイクアップを生成するために使用される割り込みの場合、後者は高いプリエンプション優先度を持っている必要があります。そうでない場合、ウェイクアップは不可能です。
実験結果から理由を分析します。
停止モードに入った後、レギュレータは切断せずに低消費電力モードで1.8V電源を供給し、レジスタの内容は引き続き維持されるため、プログラムはまだ割り込み状態にあります。ただし、別の割り込みがウェイクアップすると、プリエンプションの優先度が十分に高くないため、元の割り込みをプリエンプトできず、ウェイクアップできません。したがって、ウェイクアップに使用される割り込みのみが高いプリエンプション優先度を持ち、ウェイクアップできます。!