Lilygo T-CameraPlus-S3 关闭延时关机以及削平电池百分比 (#598)

* lilygo-t-cameraplus-s3 add pmic

* set lilygo-t-cameraplus-s3 seconds_to_shutdown to -1
This commit is contained in:
yusuhua
2025-05-10 19:18:37 +08:00
committed by GitHub
parent be18c1aa04
commit 7abcd30def
2 changed files with 12 additions and 5 deletions

View File

@@ -44,15 +44,22 @@ int Sy6970::GetChargeTargetVoltage() {
} }
int Sy6970::GetBatteryLevel() { int Sy6970::GetBatteryLevel() {
int battery_minimum_voltage = 3200; // 电池所能掉电的最低电压 int level = 0;
// 电池所能掉电的最低电压
int battery_minimum_voltage = 3200;
int battery_voltage = GetBatteryVoltage(); int battery_voltage = GetBatteryVoltage();
int charge_voltage_limit = GetChargeTargetVoltage(); int charge_voltage_limit = GetChargeTargetVoltage();
ESP_LOGI(TAG, "battery_voltage: %d, charge_voltage_limit: %d", battery_voltage, charge_voltage_limit);
if (battery_voltage > battery_minimum_voltage && charge_voltage_limit > battery_minimum_voltage) { if (battery_voltage > battery_minimum_voltage && charge_voltage_limit > battery_minimum_voltage) {
return (((float) battery_voltage - (float) battery_minimum_voltage) / ((float) charge_voltage_limit - (float) battery_minimum_voltage)) * 100.0; level = (((float) battery_voltage - (float) battery_minimum_voltage) / ((float) charge_voltage_limit - (float) battery_minimum_voltage)) * 100.0;
} }
return 0; // 不连接电池时读取的充电状态不稳定且battery_voltage有时会超过charge_voltage_limit
if (level > 100) {
level = 100;
}
return level;
} }
void Sy6970::PowerOff() { void Sy6970::PowerOff() {
WriteReg(0x09,0B01100100); WriteReg(0x09, 0B01100100);
} }

View File

@@ -76,7 +76,7 @@ private:
PowerSaveTimer* power_save_timer_; PowerSaveTimer* power_save_timer_;
void InitializePowerSaveTimer() { void InitializePowerSaveTimer() {
power_save_timer_ = new PowerSaveTimer(-1, 60, 300); power_save_timer_ = new PowerSaveTimer(-1, 60, -1);
power_save_timer_->OnEnterSleepMode([this]() { power_save_timer_->OnEnterSleepMode([this]() {
ESP_LOGI(TAG, "Enabling sleep mode"); ESP_LOGI(TAG, "Enabling sleep mode");
auto display = GetDisplay(); auto display = GetDisplay();