22 сентября приглашаем на занятие «Асинхронное программирование и магические слова async/awai» продвинутого онлайн-курса «C# Developer. Professional» от OTUS.
На бесплатном демо-занятии онлайн-курса мы увидим, как писать асинхронный код, а также изучим механизм, скрытый под ключевыми словами async/await. *** Основная функция любой задачи — применение на практике полученных знаний. Постоянная практика важна и нужна, как и обсуждение результатов. В этой статье вы найдете решения некоторых задач на языке программирования Си шарп...
Так сколько же все-таки потребляет ESP32 (тот самый обычный ESP32 с двумя ядрами и FSM ULP ядром) на примере готового модуля ESP32-S при питании от 3.3 В в различных режимах сна? Скетч полагается на то, что кнопка коммутирует на землю изначально подтянутый к питанию GPIO0, а светодиод катодом подключен к GPIO2. Первые 5 сек. работы скетча CPU активен, далее 5 сек. CPU в режиме легкого сна, далее легкий сон с пробуждением от нажатия на кнопку, далее 5 сек. глубокого сна, далее глубокий сон с мониторингом кнопки EXT0, далее глубокий сон с мониторингом кнопки EXT1 и наконец глубокий сон с мониторингом кнопки с помощью ULP каждые 5 мс. CPU Active 38 mA CPU Light Sleep (timer) 1560 uA CPU Light Sleep (GPIO) 1560 uA CPU Deep Sleep (timer) 3 uA CPU Deep Sleep (EXT0) 4 uA CPU Deep Sleep (EXT1) 4 uA CPU Deep Sleep (ULP each 5 ms) 20 uA Само собой, это потребление с выключенными WiFi и BT. Если для ULP уменьшить время таймера с 5 мс, то потребление энергии возрастет, зато станет возможным отслеживать кратковременные изменения состояния RTC GPIO. Потребление же ULP в режиме постоянного мониторинга в глубоком сне основных ядер составляет 435 uA (для этого в скетче необходимо раскомментировать дефайн ULP_INFINITE). Скетч сделан для Arduino IDE, хотя от фреймворка Arduino используется только вывод в UART через объект Serial, для остального используется ESP-IDF. Если это будет интересно хотя бы 1/10 подписчиков, то напишу статью о том, как использовать раннее просыпание...