Честно говоря пока с "сонным" режимом именно для ардуино не игрался - это все-таки "выход за рамки" стандартного референса...
Там саму библиотеку надо с пристрастием изучить...
interrupts(); там особо не при делах - это общее разрешение/запрет ВСЕХ прерываний - а изначально их никто и не запрещал.
Другое дело ежли у Вас ранее по тексту программы применялось
noInterrupts()
тогда в обязательном порядке после защищенного участка снова надо прерывания разрешать - иначе системный таймер будет отключен.
И относительно самих прерываний...
На сегодня (1.8.9 и выше) действует строка вывода:
Код: Выделить всё
attachInterrupt(digitalPinToInterrupt(pin), ISR, mode);
взамен более ранним формам
Код: Выделить всё
attachInterrupt(interrupt, ISR, mode); (not recommended)
attachInterrupt(pin, ISR, mode) ; (not recommended Arduino Due, Zero only)
возможно там проблема...
