Commit Graph

18 Commits

Author SHA1 Message Date
wangfq
c73c9dae2b docs: 添加产品发布说明 (V1.6 release notes) 2026-06-24 10:13:26 +08:00
wangfq
2f6cb54847 fix: 时序参数修正 — OUT/PULSE_DELAY 均为500ms
- OUT_DELAY: 1.9s→500ms (10 tick), SW_4=ON时生效, OFF时为0
- PULSE_DELAY: 950ms→500ms (10 tick), 固定不变
- 删除 OUT_DELAY_FAST/PULSE_DELAY_FAST, 仅保留一组值
- SW_4 语义: 0=无离开延时, 1=500ms离开延时
- 同步更新产品手册、技术规格书、README、devlog
2026-06-24 09:13:46 +08:00
wangfq
034a82f024 fix: SW4 快速模式 — 离开和脉冲延时均缩短为500ms
- TaskLoop.h: 新增 OUT_DELAY_FAST=10, PULSE_DELAY_FAST=10
- TaskLoop.h: SET_DLY 注释从"延时"改为"快速模式"
- TaskLoop.c: FLAG_OUT 不再跳过延时,改为 OUT_DELAY_FAST 计数
- TaskLoop.c: FLAG_PLUSE 改用 PULSE_DELAY_FAST 计数
- 旧行为: SET_DLY=1 时 FLAG_OUT 立即跳到 FLAG_PLUSE
- 新行为: SET_DLY=1 时两者均用 10 tick (500ms) 快速延迟
2026-06-24 09:07:01 +08:00
wangfq
a83674f77b fix: 防止异常上升污染基线 — Origin跟踪冻结保护
- CAPVD异常上升时暂停基线跟踪 (dev > dlt_ORG×4)
- 防止Xn先增大再减小导致Origin被顶到虚高
- 虚高Origin + 有车冻结 → 离开时永远无法释放
- 冻结阈值跟随灵敏度自动缩放
2026-06-23 18:10:29 +08:00
wangfq
86d09eb953 feat: USE_FLATNESS_EXIT 宏开关 — 平坦性/简单防抖可切换
- TaskLoop.h 新增 #define USE_FLATNESS_EXIT 1
- #if USE_FLATNESS_EXIT 包裹所有平坦性状态变量和逻辑
- #else 回退到 cnt_release>=3 简单防抖
- 置 0 即可切回传统离开判定
2026-06-23 17:24:46 +08:00
wangfq
aff6aa9a2b feat: 移植 CN200910309382 平坦性离开判定
- 进入: 保持单一阈值法 f-f_b > Δ1
- Phase 1 (g_exit_state=0): 追踪第一上升坡面 max |f'|, |f''|
- Phase 2 (g_exit_state=1): 三条件平坦性
  |f-f_b| < Δ1 (SensTable_1)  &&  |f'| < Δ2  &&  |f''| < Δ3
- Δ2 = max_slope / 8, Δ3 = max_slope_rate / 8 (动态阈值)
- 连续3次平坦确认后释放, 防大车多峰误触发
- 安全复位时重置平坦性状态
2026-06-23 16:17:19 +08:00
wangfq
affc9ad532 fix: 线圈断开期间绿灯灭, 黄灯快闪负责故障指示 2026-06-23 15:56:53 +08:00
wangfq
3b2c4dea87 feat: 线圈重连后保持检测状态
- 断开时不丢 VD_FLAG,保留断开前的检测状态
- 重连时 CAPVD=0 强制 IIR 从首个有效值重新收敛
- vd1_task 首个样本直接锁定 Value,后续 IIR 正常跟踪
- 重连后: 有车→绿灯亮, 无车→绿灯灭, 自动接续
2026-06-23 15:45:45 +08:00
wangfq
69bb28cf58 fix: 上电后稳定期 — 128样本(~128ms)仅跟踪基线不检测
- 新增 g_loop_stable 标志,Origin确立后持续慢闪
- vd1_task 稳定期内只做 IIR + 基线跟踪,跳过进入检测
- 稳定期 128 样本 (~128ms) 后自动启用检测
- 绿灯慢闪延续到稳定期结束
- 安全复位时重置 g_loop_stable
2026-06-23 14:40:38 +08:00
wangfq
8439f2e72b fix: LEDA宏指向绿灯PA9, 删除LEDB宏
- LEDA_ON/LEDA_OFF → 控制绿灯 (PA9, LED_GREEN)
- 删除 LEDB_ON/LEDB_OFF 宏 (无实际IO)
- 红灯(PB1)由TMR14 PWM直接驱动, 不需GPIO宏
- 更新 board_init 注释
2026-06-23 14:29:02 +08:00
wangfq
6dfa9ee831 fix: 黄灯逻辑 — 断开中快闪, 重连后N短闪
- 线圈断开中: 快闪 (200ms), 无论断开多少次
- 线圈重连后: 按断开次数显示 N 短闪 (1/2/3次)
- 无线圈上电后首次接线: 不计入, 黄灯灭
- 判定条件: g_disconnect_active || !g_loop_power_up_state → 快闪
2026-06-23 14:18:07 +08:00
wangfq
c4b514c547 fix: 绿灯自检闪烁改为200ms, 修正LED命名注释
- LEDA=绿灯(PA9), 自检慢闪 200ms亮/200ms灭
- 红灯(PB1)始终PWM呼吸, 不干预
- LEDB宏无实际IO, 仅命名遗留
2026-06-23 14:00:04 +08:00
wangfq
f59baac571 feat: 绿灯行为 — 自检慢闪 + 车辆存在指示
- 自检阶段 (loop1_INI_LOOP 或线圈未稳定): 绿灯慢闪 (500ms)
- 正常工作: 有车亮, 无车灭
- 绿灯统一由 TMR15 ISR poll_green_led() 驱动, 单点控制
- 移除 vd1_task 和 loop_task 中所有手动 LEDB_ON/OFF
- 移除线圈重连时的 6 次绿灯闪烁 (由黄灯故障码替代)
2026-06-23 13:55:53 +08:00
wangfq
f61e2e3cc0 refactor: 重写黄灯故障指示 — 断开次数编码闪烁
- 无线圈上电: 黄灯快闪 (200ms)
- 线圈断开 N 次: N 短闪 (80ms亮/200ms灭 × N, 1.2s间隔)
- 不计入上电前未接线的情况
- 删除旧状态机 (g_led_loop_reconnect 等 4 个变量)
- 新增 g_disconnect_count/active + g_fault_phase/tick
2026-06-23 13:47:27 +08:00
wangfq
eff59c9ba9 perf: 提高测量精度和响应速度
- TIM3 分频 DIV_4→DIV_2(中断率×2,CPU仍<3%)
- 去掉 XNSUM_FOR_ORIGIN_FACTOR (>>6),保留全部采样精度
- LPCNT = MEASUREMENT_BASE(131072)/Xn,替代 (32768<<6)/Xn
- 测量窗口 17.5ms→~1ms(快16倍)
- Origin 范围 32K→131K,灵敏度阈值自动按比例缩放
- 离开增加 cnt_release>=3 防抖,防瞬间噪声误落杆
2026-06-23 11:02:12 +08:00
wangfq
95bf13a5ef refactor: 精简检测算法,对齐 M1H/TLD-110 参考实现
- 删除二阶差分滤波(计算但从未参与判决)
- 删除 FltHistoryManager 死代码(20+ 未用字段)
- 删除 StageRangeConfig(区间约束计算后未引用)
- 删除动态窗口切换,改为 M1H 固定 100 窗口基线
- 修复 LPCNT 计算溢出 (32768/Xn<<6 改为乘除顺序)
- 进入/离开判决对齐 M1H:单次检测 + TMR15 时序防抖
- 时序状态机简化:去掉 PLUSE_IN_F/PLUSE_IN 中间层
- 拨码去抖次数对齐 M1H: 10→5
- 代码量: 1177→706 行 (-40%)
2026-06-23 08:39:48 +08:00
wangfq
1d1e7fbc19 refactor: 对齐 DLD154V4B 规格和 M1H 参考
- 灵敏度表改为 M1H 值: {216,108,36,10} / {108,72,18,9}
- 时序参数对齐: OUT_DELAY 39→38, PULSE_DELAY 10→19
- LED 宏命名对齐 154V4B: LEDA=红(PB1), LEDB=绿(PA9), LEDC=黄(PA10)
- RLY1/RLY2 引脚交换: PA6=RLY1, PA5=RLY2
2026-06-22 19:52:46 +08:00
wangfq
7b95eb1183 init: DLD154V4B 单路车检器项目 2026-06-22 18:20:37 +08:00