123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- #include "batt_charge.h"
- #include <stdio.h>
- #include "esp_sleep.h"
- #include "driver/gpio.h"
- #include "LED.h"
- #include "ulp_main.h"
- #define GPIO_PIN GPIO_NUM_33
- extern void beep_blink(uint16_t ms,uint16_t count);
- void chargeing_gpio_isr_handler(void* arg) {
- printf("chargeing\r\n");
- // 在这里执行唤醒时需要处理的任务
- // ...
- //beep_blink(100,4);
- // 清除中断状态
- // uint32_t gpio_intr_status = READ_PERI_REG(GPIO_STATUS_REG);
- // WRITE_PERI_REG(GPIO_STATUS_W1TC_REG, gpio_intr_status);
- }
- void charge_success_gpio_isr_handler(void* arg) {
- // 在这里执行唤醒时需要处理的任务
- // ...
-
- //printf("charge_success_gpio_isr_handler\r\n");
- //beep_blink(100,3);
- // // 清除中断状态
- // uint32_t gpio_intr_status = READ_PERI_REG(GPIO_STATUS_REG);
- // WRITE_PERI_REG(GPIO_STATUS_W1TC_REG, gpio_intr_status);
- }
- void configure_gpio_interrupt() {
- }
- // void app_main() {
- // configure_gpio_interrupt();
- // while (1) {
- // // 进入Light Sleep模式
- // esp_sleep_enable_gpio_wakeup(); // 允许GPIO唤醒
- // esp_light_sleep_start(); // 进入Light Sleep模式
- // }
- // }
- void charge_init()
- {
- // #include "driver/rtc_io.h"
- #if 0
- gpio_config_t io_conf;
- // 中断引脚配置
- io_conf.intr_type = GPIO_INTR_ANYEDGE; // 中断触发类型(上升沿/下降沿/任意边缘触发)
- io_conf.pin_bit_mask = ((1ULL << CHARGEING_GPIO)); // GPIO引脚
- io_conf.mode = GPIO_MODE_INPUT; // 输入模式
- io_conf.pull_up_en = GPIO_PULLUP_DISABLE; // 禁用上拉电阻
- io_conf.pull_down_en = GPIO_PULLDOWN_DISABLE; // 禁用下拉电阻
- gpio_config(&io_conf);
- // 安装GPIO中断处理程序
- gpio_install_isr_service(0);
- gpio_isr_handler_add(CHARGEING_GPIO, chargeing_gpio_isr_handler, (void*) CHARGEING_GPIO);
- //gpio_isr_handler_add(CHARGEING_GPIO, chargeing_gpio_isr_handler, (void*) CHARGE_SUCCESS_GPIO);
- #else
- // ESP_ERROR_CHECK(rtc_gpio_init(CHARGEING_GPIO));
- // ESP_ERROR_CHECK(gpio_pullup_dis(CHARGEING_GPIO));
- // ESP_ERROR_CHECK(gpio_pulldown_dis(CHARGEING_GPIO));
- // ESP_ERROR_CHECK(esp_sleep_enable_ext0_wakeup(CHARGEING_GPIO, 0));
- // ESP_ERROR_CHECK(rtc_gpio_init(CHARGE_SUCCESS_GPIO));
- // ESP_ERROR_CHECK(gpio_pullup_dis(CHARGE_SUCCESS_GPIO));
- // ESP_ERROR_CHECK(gpio_pulldown_dis(CHARGE_SUCCESS_GPIO));
- // ESP_ERROR_CHECK(esp_sleep_enable_ext0_wakeup(CHARGE_SUCCESS_GPIO, 0));
- // uint32_t value = ulp_charge_is_success;
- // uint32_t value1 = ulp_charge_is_running;
- #endif
- }
- void charge_deinit()
- {
- }
|