loginkr пишет:
Спасибо за подсказки.
Все же интересно как тогда в конструкторе работает и счетчик и memory retention.
Можете поделиться кодом ?
Всегда пожалуйста.
Счетчик и memory retention работают и у меня. Да и у Вас должен работать. Правда вот тут
if(sleep_counter<0){
sleep_counter = 0;
}else{
sleep_counter++;
}
я что-то не понял, как sleep_counter станет меньше нуля.
Что могу еще сказать - при использовании memory retention Вам не нужен основной цикл while(1) {...}. Программа в любом случае завершится на pwr_clk_mgmt_enter_power_mode_memory_ret_tmr_on(), а при просыпании запустится сначала. А для того, чтобы определить, после какого режима она запустилась, есть регистр PWRDWN. После memory retention timers on младшие 3 бита будут 011. А раз за энергопотребление боритесь - конфигурируйте радио только если есть, что передавать. Если проснулись, проверить счетчик и снова уснуть - ничего больше и не делайте.
А вот как оно работает в конструкторе и какой там код - не подскажу, так как сам не знаю.

Я писал код для nrf24le1 под свой проект мониторинга погодных условий снаружи и внутри помещения.
Может, попросим автора (Adminhs, просим!

) поделиться кодом, который генерирует конструктор для варианта c memory retention?