Merge pull request 'fix(wave): bench 定时自抓到期判定无符号回绕恒真修复,第四幕板级闭环入档(#84)' (#95) from exec-issue-84-1f621ac1c3ce into master
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:
+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