Vielleicht habe ich auch etwas falsch verstanden oder interpretiert.
Quote
BODS and BODSE must first be written to '1'. Then, BODS must be written to '1' and BODSE must be
written to zero within four clock cycles.
The BODS bit is active three clock cycles after it is set. A sleep instruction must be executed while BODS is active in order to turn off the BOD for the actual sleep mode
Soweit ich das verstehe stehen nach dem Deaktivieren des Brown-Out-Detektors maximal 3 Clocks zur Verfügung um den Sleep Befehl aufzurufen, damit der der Detektor sich auch wirklich deaktiviert. Das Aktivieren des Interrupts vor dem Sleep Befehl könnte jedoch dazu führen, dass vor der Ausführung des Sleep Befehls noch ein Interrupt abgearbeitet wird und somit mehr als 3 Clocks vergehen und folglich der Detektor nicht deaktiviert wird im Sleep-Modus.
Dies ist ein Dilemma, da der Interrupt für das Wake-Up benötigt wird. Daher die Idee, den Interrupt nicht global, sondern einzeln zu deaktivieren mit Ausnahme des pin-change-interrupts in deinem Fall.