batt_charge.c 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. #include "batt_charge.h"
  2. #include <stdio.h>
  3. #include "esp_sleep.h"
  4. #include "driver/gpio.h"
  5. #include "LED.h"
  6. #include "ulp_main.h"
  7. #define GPIO_PIN GPIO_NUM_33
  8. extern void beep_blink(uint16_t ms,uint16_t count);
  9. void chargeing_gpio_isr_handler(void* arg) {
  10. printf("chargeing\r\n");
  11. // 在这里执行唤醒时需要处理的任务
  12. // ...
  13. //beep_blink(100,4);
  14. // 清除中断状态
  15. // uint32_t gpio_intr_status = READ_PERI_REG(GPIO_STATUS_REG);
  16. // WRITE_PERI_REG(GPIO_STATUS_W1TC_REG, gpio_intr_status);
  17. }
  18. void charge_success_gpio_isr_handler(void* arg) {
  19. // 在这里执行唤醒时需要处理的任务
  20. // ...
  21. //printf("charge_success_gpio_isr_handler\r\n");
  22. //beep_blink(100,3);
  23. // // 清除中断状态
  24. // uint32_t gpio_intr_status = READ_PERI_REG(GPIO_STATUS_REG);
  25. // WRITE_PERI_REG(GPIO_STATUS_W1TC_REG, gpio_intr_status);
  26. }
  27. void configure_gpio_interrupt() {
  28. }
  29. // void app_main() {
  30. // configure_gpio_interrupt();
  31. // while (1) {
  32. // // 进入Light Sleep模式
  33. // esp_sleep_enable_gpio_wakeup(); // 允许GPIO唤醒
  34. // esp_light_sleep_start(); // 进入Light Sleep模式
  35. // }
  36. // }
  37. void charge_init()
  38. {
  39. // #include "driver/rtc_io.h"
  40. #if 0
  41. gpio_config_t io_conf;
  42. // 中断引脚配置
  43. io_conf.intr_type = GPIO_INTR_ANYEDGE; // 中断触发类型(上升沿/下降沿/任意边缘触发)
  44. io_conf.pin_bit_mask = ((1ULL << CHARGEING_GPIO)); // GPIO引脚
  45. io_conf.mode = GPIO_MODE_INPUT; // 输入模式
  46. io_conf.pull_up_en = GPIO_PULLUP_DISABLE; // 禁用上拉电阻
  47. io_conf.pull_down_en = GPIO_PULLDOWN_DISABLE; // 禁用下拉电阻
  48. gpio_config(&io_conf);
  49. // 安装GPIO中断处理程序
  50. gpio_install_isr_service(0);
  51. gpio_isr_handler_add(CHARGEING_GPIO, chargeing_gpio_isr_handler, (void*) CHARGEING_GPIO);
  52. //gpio_isr_handler_add(CHARGEING_GPIO, chargeing_gpio_isr_handler, (void*) CHARGE_SUCCESS_GPIO);
  53. #else
  54. // ESP_ERROR_CHECK(rtc_gpio_init(CHARGEING_GPIO));
  55. // ESP_ERROR_CHECK(gpio_pullup_dis(CHARGEING_GPIO));
  56. // ESP_ERROR_CHECK(gpio_pulldown_dis(CHARGEING_GPIO));
  57. // ESP_ERROR_CHECK(esp_sleep_enable_ext0_wakeup(CHARGEING_GPIO, 0));
  58. // ESP_ERROR_CHECK(rtc_gpio_init(CHARGE_SUCCESS_GPIO));
  59. // ESP_ERROR_CHECK(gpio_pullup_dis(CHARGE_SUCCESS_GPIO));
  60. // ESP_ERROR_CHECK(gpio_pulldown_dis(CHARGE_SUCCESS_GPIO));
  61. // ESP_ERROR_CHECK(esp_sleep_enable_ext0_wakeup(CHARGE_SUCCESS_GPIO, 0));
  62. // uint32_t value = ulp_charge_is_success;
  63. // uint32_t value1 = ulp_charge_is_running;
  64. #endif
  65. }
  66. void charge_deinit()
  67. {
  68. }