diff --git a/libraries/TinyPower/TinyPower.h b/libraries/TinyPower/TinyPower.h index 134947a..2d834d3 100644 --- a/libraries/TinyPower/TinyPower.h +++ b/libraries/TinyPower/TinyPower.h @@ -36,16 +36,19 @@ public: sei(); // Enable interrupts } - static void enableWdt(byte time) - { - MCUSR = 0x00; - WDTCR |= _BV(WDCE) | _BV(WDE); - WDTCR = _BV(WDIE) | time; + static void enableWdt(byte time) { + cli(); + MCUSR = 0x00; + WDTCR |= _BV(WDCE) | _BV(WDE); + WDTCR = _BV(WDIE) | (time & 0x08 ? _WD_PS3_MASK : 0x00) | (time & 0x07); + sei(); } static void disableWdt() { - MCUSR = 0x00; - WDTCR |= _BV(WDCE) | _BV(WDE); - WDTCR = 0x00; + cli(); + MCUSR = 0x00; + WDTCR |= _BV(WDCE) | _BV(WDE); + WDTCR = 0x00; + sei(); } };