fix(vd960Loop): 编译错误修复 — Flt_Reg/SensTable/macros/INCNT

This commit is contained in:
wangfq
2026-06-25 16:41:50 +08:00
parent 633c20562d
commit d2b132a6ef
4 changed files with 11 additions and 18 deletions

View File

@@ -40,7 +40,7 @@ uint32_t get_flt_value(uint32_t new_value, uint32_t last_Value)
uint32_t delta = (new_value > last_Value)
? (new_value - last_Value)
: (last_Value - new_value);
uint32_t scaled_delta = (delta * (uint32_t)Flt_Reg) >> 8;
uint32_t scaled_delta = (delta * ALFA_CAP1) >> 8;
if (new_value > last_Value) {
value_Flt = last_Value + scaled_delta;
@@ -99,8 +99,8 @@ void set_loops_relay_off(uint8_t loop_num)
*===========================================================================*/
void init_vd_single(Loop154_Unit *unit)
{
unit->loop_INCNT = 0;
unit->loop_OUTCNT = 0;
unit->INCNT = 0;
unit->OUTCNT = 0;
unit->loop_CapCnt = 0;
unit->loop_CapLast = 0;
unit->loop_LPCNT = 0;
@@ -428,10 +428,7 @@ void vd1_task_per_channel(Loop154_Unit *unit)
if (unit->loop_CAPVD == 0) {
unit->loop_CAPVD = unit->loop_Value;
} else {
uint8_t saved_flt_reg = Flt_Reg;
Flt_Reg = unit->Flt_Reg;
unit->loop_CAPVD = get_flt_value(unit->loop_Value, unit->loop_CAPVD);
Flt_Reg = saved_flt_reg;
}
/*--- 2. 稳定期:只跟踪基线,不检测车辆 ---*/