Нарыл и оттёр от пыли 3 стареньких nrf24le1 модулька дабы реализовать на них дистанционный съём данных. Всё шло хорошо, пока я не попытался начать экономить батарейку и не начал усыплять проц. Сразу оговорюсь - усыплять пытаюсь в Memory retention, timers on.
В документации сказано буквально следующее:
Цитата
Wakeup source(s):
From pin, wakeup TICK from timer or voltage level on pin (analog
comparator wakeup)
From pin, wakeup TICK from timer or voltage level on pin (analog
comparator wakeup)
Для этого делаю такое:
Код
PWRDWN = 0x03;
while(1);
while(1);
в результате оно вроде засыпает. Но вот разбудить не могу. А бужу так, точнее настраиваю:
Код
WUCON = 0x08; //Принудительно разрешить WUOPIRQ
WUOPC0 = 0x40; //Внешнее прерывание по P0.6
IEN0 = 0x81;
IEN1 = 0x08; // Wakeup on pin (WUOPIRQ) interrupt enable
INTEXP =0x08; //Enable GP INT0 (from pin) 0 to IFP
WUOPC0 = 0x40; //Внешнее прерывание по P0.6
IEN0 = 0x81;
IEN1 = 0x08; // Wakeup on pin (WUOPIRQ) interrupt enable
INTEXP =0x08; //Enable GP INT0 (from pin) 0 to IFP
В результате прерывание приходит, но стоит усыпить проц, то всё - обратно только ресетом.
Что я не так делаю то?
