From fad99a550b5d7c1062515997986a03b9e75b8393 Mon Sep 17 00:00:00 2001 From: wangfq Date: Tue, 25 Aug 2026 11:44:24 +0800 Subject: [PATCH] =?UTF-8?q?fix(vd960Loop):=20=E7=81=B5=E6=95=8F=E5=BA=A6?= =?UTF-8?q?=E9=98=88=E5=80=BC=E6=94=B9=E7=94=A8=E5=8F=AF=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=81=B5=E6=95=8F=E5=BA=A6=E8=A1=A8=20g=5Floop=5Fsens=5Flist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 固定表 SensTable/SensTable_1 替换为 flash 可配置的 g_loop_sens_list.sens[loop_SensLevel].sens_in/sens_out (进入/平坦性/离开三处 dlt_ORG 计算同步修改) - 修复灵敏度值固定不可配置的问题 - 默认值由 set_factory_param 保持 {216,108,36,10}/{108,72,18,9} --- vd960Loop/utilities/at32f421_freertos_demo/src/TaskLoop.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/vd960Loop/utilities/at32f421_freertos_demo/src/TaskLoop.c b/vd960Loop/utilities/at32f421_freertos_demo/src/TaskLoop.c index c3d5f59..77f5a2a 100644 --- a/vd960Loop/utilities/at32f421_freertos_demo/src/TaskLoop.c +++ b/vd960Loop/utilities/at32f421_freertos_demo/src/TaskLoop.c @@ -6,6 +6,7 @@ #include "task.h" #include #include +#include "storage.h" /*=========================================================================== * 灵敏度表 — 对齐 DLD154V4B / M1H @@ -472,7 +473,7 @@ void vd1_task_per_channel(Loop154_Unit *unit) * 无车状态 *================================================================*/ - unit->loop_dlt_ORG = ((uint32_t)unit->loop_Origin * SensTable[unit->loop_SensLevel]) >> 16; + unit->loop_dlt_ORG = ((uint32_t)unit->loop_Origin * g_loop_sens_list.sens[unit->loop_SensLevel].sens_in) >> 16; { int32_t dev = (int32_t)unit->loop_CAPVD - (int32_t)unit->loop_Origin; if (dev < (int32_t)(unit->loop_dlt_ORG * 4)) { @@ -590,7 +591,7 @@ void vd1_task_per_channel(Loop154_Unit *unit) } else { int32_t dev = (int32_t)unit->loop_CAPVD - (int32_t)unit->loop_Origin; int32_t cond1 = (dev >= 0) ? dev : -dev; - unit->loop_dlt_ORG = ((uint32_t)unit->loop_Origin * SensTable_1[unit->loop_SensLevel]) >> 16; + unit->loop_dlt_ORG = ((uint32_t)unit->loop_Origin * g_loop_sens_list.sens[unit->loop_SensLevel].sens_out) >> 16; if (cond1 < (int32_t)unit->loop_dlt_ORG && abs_fd < (int32_t)unit->delta2 && abs_sd < (int32_t)unit->delta3) { unit->flat_ok_cnt++; @@ -624,7 +625,7 @@ void vd1_task_per_channel(Loop154_Unit *unit) /*================================================================ * 有车状态 — cnt_release 防抖离开 *================================================================*/ - unit->loop_dlt_ORG = ((uint32_t)unit->loop_Origin * SensTable_1[unit->loop_SensLevel]) >> 16; + unit->loop_dlt_ORG = ((uint32_t)unit->loop_Origin * g_loop_sens_list.sens[unit->loop_SensLevel].sens_out) >> 16; if ((unit->loop_Origin - unit->loop_dlt_ORG) < unit->loop_CAPVD) { unit->loop_cnt_release++;