精简 usr_app 架构:去掉关机/休眠死代码,按键复用 key.c 状态机,ISR 重活统一延后到任务上下文
Type-C 长供电、上电即工作、无软关机,删除 app_boot/app_power 及 DP0 开关相关逻辑, 去掉空占位 app_fan_run 和无效的 usr_timer_pick_mode/rearm(数码管 4ms 扫描已 priority=1, 系统本来就不会进低功耗)。按键 5s 配对 / 12s OTA 改走 key.c 长按分级,去掉自计时与 1~5s 死区。 新增 app_defer,NVM/配对/OTA 只在 ISR 置位、在 500ms 任务上下文落地,避免再在 usr_timer 里写 flash。 规格书与注释同步精简。
This commit is contained in:
+4
-16
@@ -2,14 +2,10 @@
|
||||
* @file app_disp.c
|
||||
* @brief CBR3 数码管显示实现
|
||||
* @author cyWu <1917507415@qq.com>
|
||||
* @date 2026.08.29
|
||||
* @version V1.1.0
|
||||
* @history
|
||||
* - V1.0.0, 2026.08.29, cyWu, 首次发布
|
||||
* - V1.0.1, 2026.08.29, cyWu, 改动态扫描:20ms 节拍只算数据写缓冲,
|
||||
* 另起 BOARD_DISP_SCAN_MS 快节拍定时器轮询点亮 1 位,解决闪烁
|
||||
* - V1.1.0, 2026.08.31, cyWu, P1 加告警闪烁:温度/湿度管独立 500ms 亮灭,
|
||||
* BOARD_DISP_ALARM_TEST 宏可强制模拟超限;fault 时 "--" 优先
|
||||
* @date 2026.08.31
|
||||
* @version V1.1.0,动态扫描(20ms 算段码写缓冲 + BOARD_DISP_SCAN_MS 快节拍
|
||||
* 轮询点亮 1 位)+ 告警闪烁(温度/湿度管独立 500ms 亮灭,
|
||||
* BOARD_DISP_ALARM_TEST 宏可强制模拟超限;fault 时 "--" 优先)
|
||||
*
|
||||
* @note ⚠ CT1642 内部只有单个 12 位锁存器(4 位选 + 8 段码),无按位显示 RAM、
|
||||
* 不自动扫描,一次只点亮当前锁存的那 1 位。要让 4 位都亮且不闪,必须由 MCU
|
||||
@@ -22,7 +18,6 @@
|
||||
|
||||
#include "app_disp.h"
|
||||
#include "app_th.h"
|
||||
#include "app_power.h"
|
||||
#include "bsp_ct1642.h"
|
||||
#include "board_pin.h"
|
||||
|
||||
@@ -212,7 +207,6 @@ void app_disp_run(uint16_t dt)
|
||||
* @note 必须短、不可阻塞。每次只发 1 帧,靠高频轮询让 4 位视觉同亮不闪。
|
||||
* IO 分离后 CT1642 独占 PG0/PG1,与 AHT20 的 PC4/PC5 无总线竞争,
|
||||
* 扫描回调无需锁、无跳过。
|
||||
* 软关机流程:4 位全灭(com=0x00 → 所有 Cx 高,位选全关)。
|
||||
* @return 无
|
||||
*/
|
||||
void app_disp_scan(void)
|
||||
@@ -224,12 +218,6 @@ void app_disp_scan(void)
|
||||
return;
|
||||
}
|
||||
|
||||
/* 软关机流程:数码管锁存灭(规格书 5.1:风扇 0、数码管锁存灭、LED 灭) */
|
||||
if (app_power_poweroff_pending()) {
|
||||
bsp_ct1642_send_frame(0x00, 0x00); /* com=0x00 → 4 位全灭 */
|
||||
return;
|
||||
}
|
||||
|
||||
#if BOARD_DISP_SCAN_TEST == 1
|
||||
/* 段扫描:4 位同显一段。⭐ 值变化才刷(无鬼影),com=0xF 四位全选同显。 */
|
||||
static uint8_t seg = 0;
|
||||
|
||||
Reference in New Issue
Block a user