diff --git a/User/module/config.c b/User/module/config.c index 8adc415..2cf0bb5 100644 --- a/User/module/config.c +++ b/User/module/config.c @@ -506,8 +506,9 @@ Config_RobotParam_t robot_config = { #endif #if CMD_ENABLE_MODULE_BALANCE_CHASSIS .balance_sw_up = CHASSIS_MODE_RELAX, + // .balance_sw_mid = CHASSIS_MODE_WHELL_LEG_BALANCE, + .balance_sw_mid = CHASSIS_MODE_RELAX, .balance_sw_mid = CHASSIS_MODE_WHELL_LEG_BALANCE, - .balance_sw_down = CHASSIS_MODE_CLIMB_STEP, #endif }, }, diff --git a/User/task/cap.c b/User/task/cap.c index 971d0dd..b77fffd 100644 --- a/User/task/cap.c +++ b/User/task/cap.c @@ -53,13 +53,13 @@ void Task_cap(void *argument) { cap_online = get_supercap_online_state(); - osKernelLock(); /* 锁住RTOS内核防止控制过程中断,造成错误 */ + // osKernelLock(); /* 锁住RTOS内核防止控制过程中断,造成错误 */ /* 根据裁判系统数据计算输出功率 */ SuperCap_CanTX.Powerlimit = power_limit; Cap_Control(&CAN_SuperCapRXData, &referee_cap); SuperCap_Update(); CAN_TX_SuperCapData(&SuperCap_CanTX); - osKernelUnlock(); + // osKernelUnlock(); /* 将电容状态发送到Chassis */ // osMessageQueueReset(task_runtime.msgq.cap.for_chassis); // osMessageQueuePut(task_runtime.msgq.cap.for_chassis, &CAN_SuperCapRXData, 0, 0); diff --git a/User/task/rc.c b/User/task/rc.c index 21ba275..910ece6 100644 --- a/User/task/rc.c +++ b/User/task/rc.c @@ -80,14 +80,18 @@ void Task_rc(void *argument) { /* 检测左拨杆切换到UP位置时触发软件复位 */ if (dr16.header.online) { - /* 拨杆从非UP状态切换到UP状态,且复位功能已使能,触发系统复位 */ - if ( - dr16.data.sw_l == DR16_SW_UP && - last_sw_l != DR16_SW_UP) { - reset=!reset; + if (last_sw_l == DR16_SW_ERR) { + /* 首次上线,仅同步状态,不触发动作 */ + last_sw_l = dr16.data.sw_l; + } else { + if (dr16.data.sw_l == DR16_SW_UP && last_sw_l != DR16_SW_UP) { + reset = !reset; + } + last_sw_l = dr16.data.sw_l; } - - last_sw_l = dr16.data.sw_l; /* 更新拨杆状态 */ + } else { + /* 离线时重置为ERR,下次上线重新同步 */ + last_sw_l = DR16_SW_ERR; } /* USER CODE END */