mirror of
https://github.com/usatiuk/cardboy.git
synced 2025-10-28 23:27:49 +01:00
shutdown on 3v
This commit is contained in:
@@ -10,6 +10,7 @@ class Shutdowner {
|
|||||||
public:
|
public:
|
||||||
static Shutdowner& get();
|
static Shutdowner& get();
|
||||||
void install_isr();
|
void install_isr();
|
||||||
|
void shutdown();
|
||||||
private:
|
private:
|
||||||
Shutdowner();
|
Shutdowner();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
#include "freertos/task.h"
|
#include "freertos/task.h"
|
||||||
|
|
||||||
#include "i2c_global.hpp"
|
#include "i2c_global.hpp"
|
||||||
|
#include "shutdowner.hpp"
|
||||||
|
|
||||||
static i2c_master_dev_handle_t dev_handle;
|
static i2c_master_dev_handle_t dev_handle;
|
||||||
|
|
||||||
@@ -105,6 +106,9 @@ void BatMon::pooler() {
|
|||||||
_current = regToCurrent(ReadRegister(0x0B));
|
_current = regToCurrent(ReadRegister(0x0B));
|
||||||
_voltage = regToVoltage(ReadRegister(0x09));
|
_voltage = regToVoltage(ReadRegister(0x09));
|
||||||
PowerHelper::get().delay(10000, 1000);
|
PowerHelper::get().delay(10000, 1000);
|
||||||
|
if (_voltage < 3.0f) {
|
||||||
|
Shutdowner::get().shutdown();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -14,12 +14,17 @@ Shutdowner& Shutdowner::get() {
|
|||||||
return instance;
|
return instance;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void IRAM_ATTR shutdown(void* arg) {
|
static void IRAM_ATTR int_shutdown(void* arg) {
|
||||||
// printf("Shutting down...\n");
|
// printf("Shutting down...\n");
|
||||||
ESP_ERROR_CHECK(gpio_hold_dis(PWR_KILL));
|
ESP_ERROR_CHECK(gpio_hold_dis(PWR_KILL));
|
||||||
ESP_ERROR_CHECK(gpio_set_level(PWR_KILL, 0));
|
ESP_ERROR_CHECK(gpio_set_level(PWR_KILL, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Shutdowner::shutdown() {
|
||||||
|
ESP_ERROR_CHECK(gpio_hold_dis(PWR_KILL));
|
||||||
|
ESP_ERROR_CHECK(gpio_set_level(PWR_KILL, 0));
|
||||||
|
}
|
||||||
|
|
||||||
Shutdowner::Shutdowner() {
|
Shutdowner::Shutdowner() {
|
||||||
ESP_ERROR_CHECK(gpio_reset_pin(PWR_KILL));
|
ESP_ERROR_CHECK(gpio_reset_pin(PWR_KILL));
|
||||||
ESP_ERROR_CHECK(gpio_set_direction(PWR_KILL, GPIO_MODE_OUTPUT));
|
ESP_ERROR_CHECK(gpio_set_direction(PWR_KILL, GPIO_MODE_OUTPUT));
|
||||||
@@ -36,4 +41,4 @@ Shutdowner::Shutdowner() {
|
|||||||
// gpio_isr_handler_add(PWR_INT, shutdown, nullptr);
|
// gpio_isr_handler_add(PWR_INT, shutdown, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Shutdowner::install_isr() { gpio_isr_handler_add(PWR_INT, shutdown, nullptr); }
|
void Shutdowner::install_isr() { gpio_isr_handler_add(PWR_INT, int_shutdown, nullptr); }
|
||||||
|
|||||||
Reference in New Issue
Block a user