Skip to content

电源、电量与 PWR

电量显示

AXP2101 提供燃料计百分比与充电状态。v6 曾把电量画在所有主页面;v7 将其移到 SETTINGS 黑场顶部中央,显示为 10 个离散段:

  • segments = ceil(percent / 10),0% 为 0 段。
  • 充电状态使用独立短标记。
  • SEED、SHOP、STAR、发射与 ambient 不出现电量 HUD。
  • 游戏只打开必要检测并读取状态,不修改厂商充电目标电压/电流与 LDO/DCDC 配置。

PWR 硬件路径

PWR 不是 ESP32 的普通 GPIO,而是 TCA9554 的 EXIO4 高有效整形信号。固件每 50 ms 读取并去抖;启动后必须先观察到完整释放态,才接受新手势,防止长按开机残留高电平又被解释成关机。

短按

  • 唤醒态短按:同步保存并进入 ambient。
  • ambient 短按:恢复亮度和主页面。
  • 不执行当前页面主动作,也不穿透成触摸。

长按

时长行为
2 秒软件安全关机:冻结 → 保存 → 读回 → AXP2101 shutdown
10 秒PMIC 硬件关机兜底,用于固件卡死
关机后约 2 秒硬件开机

耐久屏障

设置页重启和 PWR 关机共用同一套屏障:

text
freeze input/tick
  → update saved_at
  → encode schema/checksum
  → nvs_commit primary/backup
  → read primary bytes back
  → decode + compare
  → restart or PMIC shutdown

任一步失败都取消软件关机,避免“看似安全关机,实际最后进度没落盘”。保存成功后的 180 ms 断电窗口不再 tick,防止刚验证的数据又变脏。

实体证据

实板短按记录完整 EXIO4 高/低边沿、standby 与 wake;长按关机前保存 taps=718 / purchases=67,USB 断开,长按开机后两项精确一致,星火只增加 RTC 计算的离线收益。