feat(V4B): V4.33 — 线圈频率窗上限 120→92kHz (COIL_F_OK_MAX_KHZ)

f>92kHz → L偏小告警(一长一短, 原 120kHz); 顺带修正 manual 黄灯表旧时序
(200/100/100/800→300/100/100/700, V4.32 遗留) 与频率窗描述
test_coil_range 边界 92/93 全绿; 语法 0 error
文档: devlog V2.31 / spec V2.12 / manual V2.10
This commit is contained in:
wangfq
2026-09-03 16:36:17 +08:00
parent 2632d51cbf
commit 1c065b280e
6 changed files with 46 additions and 15 deletions
+8 -8
View File
@@ -2,8 +2,8 @@
* test_coil_range.c — 线圈电感量合理范围监视 gcc 隔离单测 (DLD154V4B V4.26)
*
* 验证对象: TaskLoop.c coil_monitor() (V4.26 拍板规格)
* 默认低频档口径: 空场频率合理窗 20~120kHz, 出界即判定电感量不合理
* g_coil_fault: 0=正常 1=L偏大(f<20kHz) 2=L偏小(f>120kHz)
* 默认低频档口径: 空场频率合理窗 20~92kHz, 出界即判定电感量不合理
* g_coil_fault: 0=正常 1=L偏大(f<20kHz) 2=L偏小(f>92kHz)
* 防抖: 越界/恢复均连续 100tick(=1s) 才置位/清除 (调用点=稳定无车空闲)
*
* 镜像宏与固件一致 (改 COIL_* 时同步此处!)
@@ -14,7 +14,7 @@
#include <stdint.h>
#define COIL_F_OK_MIN_KHZ 20
#define COIL_F_OK_MAX_KHZ 120
#define COIL_F_OK_MAX_KHZ 92
#define COIL_DEF_C_NF 66
static uint8_t g_coil_fault = 0;
@@ -86,11 +86,11 @@ static void test_boundaries(void)
{
g_coil_fault = 0; g_coil_bad_cnt = 0;
run_ticks(19, 100); assert(g_coil_fault == 1); /* 19 → 偏大 */
run_ticks(62, 100); assert(g_coil_fault == 0); /* 20~120 正常 */
run_ticks(62, 100); assert(g_coil_fault == 0); /* 20~92 正常 */
run_ticks(20, 100); assert(g_coil_fault == 0); /* 边界 20 正常 */
run_ticks(120, 100); assert(g_coil_fault == 0); /* 边界 120 正常 */
run_ticks(121, 100); assert(g_coil_fault == 2); /* 121 → 偏小 */
printf("4. 边界 19/20/120/121 OK\n");
run_ticks(92, 100); assert(g_coil_fault == 0); /* 边界 92 正常 */
run_ticks(93, 100); assert(g_coil_fault == 2); /* 93 → 偏小 */
printf("4. 边界 19/20/92/93 OK\n");
}
static void test_jitter_no_alarm(void)
@@ -111,6 +111,6 @@ int main(void)
test_recover();
test_boundaries();
test_jitter_no_alarm();
printf("\nALL PASS (窗口 20~120kHz, 防抖 1s)\n");
printf("\nALL PASS (窗口 20~92kHz, 防抖 1s)\n");
return 0;
}