feat(V4B): V4.36.18 — 频率窗下界 20→18kHz

COIL_F_OK_MIN_KHZ 18: 合理窗 18~125kHz (@43nF ≈ L47µH~1.15mH) 放行更大电感
test 边界 17偏大/18正常 全绿; 镜像同步
顺带修正 spec 参数表历史滞后: MAX 115→125, COIL_CAL_C_NF 68→43
语法0 error; spec V2.34 / manual / devlog V2.53
This commit is contained in:
wangfq
2026-09-04 17:35:41 +08:00
parent c4c7a484b7
commit e1b5542296
6 changed files with 23 additions and 13 deletions
+5 -5
View File
@@ -3,7 +3,7 @@
*
* 验证对象: TaskLoop.c coil_monitor() (V4.26 拍板规格)
* 默认低频档口径(43nF 三极管板): 空场频率合理窗 20~125kHz, 出界即判定电感量不合理
* g_coil_fault: 0=正常 1=L偏大(f<20kHz) 2=L偏小(f>125kHz)
* g_coil_fault: 0=正常 1=L偏大(f<18kHz) 2=L偏小(f>125kHz)
* 防抖: 越界/恢复均连续 100tick(=1s) 才置位/清除 (调用点=稳定无车空闲)
*
* 镜像宏与固件一致 (改 COIL_* 时同步此处!)
@@ -13,7 +13,7 @@
#include <stdio.h>
#include <stdint.h>
#define COIL_F_OK_MIN_KHZ 20
#define COIL_F_OK_MIN_KHZ 18
#define COIL_F_OK_MAX_KHZ 125
#define COIL_DEF_C_NF 66
@@ -85,9 +85,9 @@ static void test_recover(void)
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(17, 100); assert(g_coil_fault == 1); /* 19 → 偏大 */
run_ticks(62, 100); assert(g_coil_fault == 0); /* 20~125 正常 */
run_ticks(20, 100); assert(g_coil_fault == 0); /* 边界 20 正常 */
run_ticks(18, 100); assert(g_coil_fault == 0); /* 边界 20 正常 */
run_ticks(125, 100); assert(g_coil_fault == 0); /* 边界 125 正常 */
run_ticks(126, 100); assert(g_coil_fault == 2); /* 126 → 偏小 */
printf("4. 边界 19/20/125/126 OK\n");
@@ -111,6 +111,6 @@ int main(void)
test_recover();
test_boundaries();
test_jitter_no_alarm();
printf("\nALL PASS (窗口 20~125kHz, 防抖 1s)\n");
printf("\nALL PASS (窗口 18~125kHz, 防抖 1s)\n");
return 0;
}