Добрый день. Продолжаю эксперименты с питанием. У меня есть две ноги подтянутые к 3.3V. Нужно, чтобы МК проснулся если на одной из них (или обеих) появится 0. Читаем доки: https://docs.espressif.com/projects.../system/sleep_modes.html#entering-light-sleep esp_sleep_enable_ext0_wakeup - отлично подходит, но работает только с одной ногой. Если вызвать два раза, то работать будет только второй. esp_sleep_enable_ext1_wakeup - подходит для множества ног, но её режимы: ESP_EXT1_WAKEUP_ALL_LOW: wake up when all selected GPIOs are low ESP_EXT1_WAKEUP_ANY_HIGH: wake up when any of the selected GPIOs is high А мне нужно ANY_LOW. Есть ещё esp_sleep_enable_ulp_wakeup, но сходу понять пример не получилось. https://github.com/espressif/esp-idf/blob/master/examples/system/ulp/main/ulp_example_main.c А пока погружаюсь, вопрос, как бы вы решили эту задачу? Может у вас есть пример с пояснениями?
Там есть пример того что мне нужно, кажется. И без ассемблера. Разбираюсь https://github.com/espressif/esp-idf/tree/master/examples/system/ulp_riscv
Моя задача легко решилась так: Код (C++): esp_sleep_enable_ext0_wakeup(GPIO_NUM_34, LOW); esp_sleep_enable_ext1_wakeup(GPIO_SEL_35, ESP_EXT1_WAKEUP_ALL_LOW);