Merge pull request 'fix(wave): bench 定时自抓到期判定无符号回绕恒真修复,第四幕板级闭环入档(#84)' (#95) from exec-issue-84-1f621ac1c3ce into master
CI / 静态门禁 (pre-commit) (push) Failing after 45s
CI / 主机侧单测 (MSVC) (push) Failing after 45s

Reviewed-on: http://100.123.83.113:3001/wandering1/STM32F4-Base/pulls/95
This commit was merged in pull request #95.
This commit is contained in:
2026-11-07 22:05:57 +08:00
20 changed files with 2279 additions and 55 deletions
+6 -2
View File
@@ -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