查看ESP32 RTC External Wakeup的源代码
←
ESP32 RTC External Wakeup
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== Code == === Using EXT_WAKEUP0 === <source lang=c> void deep_sleep_ext_wakeup(uint8_t rtc_gpio_num) { if (esp_get_deep_sleep_wake_stub() == NULL) { esp_set_deep_sleep_wake_stub(esp_wake_deep_sleep); } rtc_pad_ext_wakeup(1 << rtc_gpio_num, rtc_gpio_num, 1); /* fixed bug of rtc_pad_slpie() for RTC_GPIO4 */ //REG_SET_BIT(RTC_IO_ADC_PAD_REG, RTC_IO_ADC1_SLP_IE); /* fixed bug of rtc_pad_slpie() for RTC_GPIO5 */ REG_SET_BIT(RTC_IO_ADC_PAD_REG, RTC_IO_ADC2_SLP_IE); rtc_slp_prep_lite(DEEP_SLEEP_PD_NORMAL, 0); rtc_sleep(0, 0, RTC_EXT_EVENT0_TRIG, 0); while (1) { ; } } #define BLINK_GPIO 27 void study_task(void *pvParameters) { gpio_pad_select_gpio(BLINK_GPIO); gpio_set_direction(BLINK_GPIO, GPIO_MODE_OUTPUT); while (1) { gpio_set_level(BLINK_GPIO, 0); vTaskDelay(1000 / portTICK_RATE_MS); gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_RATE_MS); gpio_set_level(BLINK_GPIO, 0); vTaskDelay(1000 / portTICK_RATE_MS); gpio_set_level(BLINK_GPIO, 1); vTaskDelay(1000 / portTICK_RATE_MS); /* pull up the RTC_GPIO5 (GPIO35) to wakeup */ deep_sleep_ext_wakeup(5); } } void app_main() { printf("Welcome to Noduino Quantum\r\n"); printf("Try to investigate the ULP/RTC of ESP32 ... \r\n"); xTaskCreatePinnedToCore(&study_task, "study_task", 1024, NULL, 5, NULL, 0); } </source> <br> === Using EXT_WAKEUP1 === <source lang=c> /* use the rtc_gpio5 (pull up) to wakeup */ void ext_wakeup_rtc_io5_setup() { rtc_pads_muxsel(1<<5, 1); rtc_pads_funsel(1<<5, 0); rtc_pads_slpsel(1<<5, 1); REG_SET_BIT(RTC_IO_ADC_PAD_REG, RTC_IO_ADC2_SLP_IE); #if USE_EXT_WAKEUP0 REG_SET_BIT(RTC_CNTL_EXT_WAKEUP_CONF_REG, RTC_CNTL_EXT_WAKEUP0_LV); REG_WRITE(RTC_IO_EXT_WAKEUP0_REG, 5<<RTC_IO_EXT_WAKEUP0_SEL_S); #else REG_SET_BIT(RTC_CNTL_EXT_WAKEUP_CONF_REG, RTC_CNTL_EXT_WAKEUP1_LV); REG_SET_BIT(RTC_CNTL_EXT_WAKEUP1_REG, 1<<5); #endif } void deep_sleep_ext_wakeup(uint8_t rtc_gpio_num) { if (esp_get_deep_sleep_wake_stub() == NULL) { esp_set_deep_sleep_wake_stub(esp_wake_deep_sleep); } ext_wakeup_rtc_io5_setup(); rtc_slp_prep_lite(DEEP_SLEEP_PD_NORMAL, 0); rtc_sleep(0, 0, RTC_EXT_EVENT1_TRIG, 0); while (1) { ; } } </source> <br><br>
返回到
ESP32 RTC External Wakeup
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面