fix(pl18): add timeout to isChargerActive() to prevent hang (#7468)

This commit is contained in:
richardclli
2026-06-18 10:05:10 +10:00
committed by GitHub
parent f13f04906e
commit 000e1d3a6d
+5 -2
View File
@@ -61,6 +61,7 @@
#endif
#define WCHARGER_LOW_CURRENT_DELAY_CNT 6000
#define WCHARGER_HIGH_CURRENT_DELAY_CNT 24000
#define CHARGER_DETECTION_TIMEOUT 40 // 400ms
typedef struct
{
@@ -298,14 +299,16 @@ uint16_t get_battery_charge_state()
bool isChargerActive()
{
#if defined(WIRELESS_CHARGER)
while (!(uCharger.isChargerDetectionReady && wCharger.isChargerDetectionReady))
uint16_t timeout = CHARGER_DETECTION_TIMEOUT;
while (!(uCharger.isChargerDetectionReady && wCharger.isChargerDetectionReady) && timeout--)
{
get_battery_charge_state();
delay_ms(10);
}
return uCharger.hasCharger || wCharger.hasCharger;
#else
while (!uCharger.isChargerDetectionReady)
uint16_t timeout = CHARGER_DETECTION_TIMEOUT;
while (!uCharger.isChargerDetectionReady && timeout--)
{
get_battery_charge_state();
delay_ms(10);