fix(wave): bench 定时自抓到期判定无符号回绕恒真修复,第四幕板级闭环入档(#84)
F0(唯一代码改动,#if DTU_BENCH 闸内,产品影像零漂移): adc_task.c 原无符号判据 (uint32_t)(now-next)>=PERIOD 在 next=now+PERIOD 挂出后立刻成立(now<next 差值回绕成巨数),台架实证 1 kHz 连发请求: ovf 每秒 +1000、段节奏被去重钳到 ~1.5 s/段,违背 ON 行承诺 「1 seg / 2000 ms」。改有符号比较(半程内回绕安全)。修复后实测 seg 恰 +5/10 s;bench Code=255284 vs 产品 254820(差 464 B)证门控。 第四幕三判据板级实证(手册 §6 步骤 3 逐条对上): - 临界占卷命中唯一 [ERR] seg drop: ring abandoned(idx=36),心跳 err 恰 +1,段号不推进、同号 5250 B 重写(P1/P2/P3 + sha256 固化); - 长占卷 72.6 s 静默自弃 err 1→15 零留痕(不是每拍刷屏最严形态); - 占卷期间 104 STARTDT 实测应答 + UI 主菜单照常(丢录波不丢采集)。 现场发现 F1(单发未复现软件复位,只记不断)/F2(lftpd 放锁早于 DOWNLOAD 落账 ~0.13 s,临界命中方法钥匙)/F3(pack_next 留痕板级 首见,同族分支)入设计说明 §10 闭环记录。 文档销项:设计说明 §5.2 L163 / §10 留痕名清单 / 板级行 / 未跑清单 四处标记闭环 + 新增「bench 定时自抓与占卷弃段观察闭环记录」小节; 到场轮手册 §1 第四幕行标已完成 + §6 收工状态注记。 收工:FILLER/FILL2/FILL3 删净,产品构建 21:32:52 已烧(除 #53 i104 首绑 FAIL 行外 8/9 required 全过、端口 STARTDT 实测活,沿用 11-06 先例定性);UI 主菜单;证据目录 docs/测试说明/测试数据/ wave_bench_20261107/(README 判据对照 + 原始/复原串口摘录 + 各轮 JSON + 启动锚点两跑日志)。
This commit is contained in:
+6
-2
@@ -585,11 +585,15 @@ void adc_task_func(void *arg) {
|
||||
s_wave_bench_off = 1u;
|
||||
DBG_INFO("wave bench autocap STOP after %u s",
|
||||
(unsigned int)(WAVE_BENCH_MAX_MS / 1000u));
|
||||
} else if ((uint32_t)(now - s_wave_bench_next) >= WAVE_BENCH_PERIOD_MS) {
|
||||
} else if ((int32_t)(now - s_wave_bench_next) >= 0) {
|
||||
/* 到期判定必须用有符号差值:无符号 (now-next)>=PERIOD 在
|
||||
* next=now+PERIOD 挂出后立刻成立(now<next 时差值回绕成巨数),
|
||||
* 2026-11-07 台架实证该写法以 1 kHz 连发请求:ovf 每秒 +1000、
|
||||
* 段节奏被去重钳到 ~1.5 s/段,违背 ON 行承诺的 1 seg / 2000 ms */
|
||||
s_wave_bench_next = now + WAVE_BENCH_PERIOD_MS;
|
||||
(void)wave_ring_request((uint8_t)WAVE_TRIG_BENCH, 0u);
|
||||
} else {
|
||||
/* 本拍未到周期点:无事可做(比较用无符号差值,回绕安全) */
|
||||
/* 本拍未到周期点:无事可做(有符号差值,半程内回绕安全) */
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user