增加的遥控器调试正常,未上车调试

This commit is contained in:
2026-04-14 19:27:21 +08:00
parent b508b7b8dd
commit d0c8109829
3 changed files with 26 additions and 11 deletions

View File

@@ -10,7 +10,7 @@ extern "C"
#include "app_dependence.h" #include "app_dependence.h"
#define MAX_SIGNALS 500u // 每个优先级的最大信号数量 #define MAX_SIGNALS 500u // 每个优先级的最大信号数量
#define MAX_SUBSCRIBERS 50u // 不同信号的订阅者数量 #define MAX_SUBSCRIBERS 70u // 不同信号的订阅者数量
#define MAX_CALLBACKS 25u // 每个信号最多支持多少订阅者 #define MAX_CALLBACKS 25u // 每个信号最多支持多少订阅者
#define PRIORITY_LEVELS 2u // 优先级层次 #define PRIORITY_LEVELS 2u // 优先级层次

View File

@@ -142,6 +142,21 @@ void rcNodeCheck(void *signal_id)
&rc_app_state.rc_traditional_last_seq, &rc_app_state.rc_traditional_last_seq,
rc_app_state.rc_traditional_enable rc_app_state.rc_traditional_enable
); );
/************************* 新增:状态打印 *************************/
// 打印16通道遥控器使能状态 + 节点状态
printf("[RC Check] 16CH Remote: Enable=%d, State=%d\r\n",
rc_app_state.rc_16ch_enable,
rc_app_state.rc_16ch_state);
// 打印传统遥控器:使能状态 + 节点状态
printf("[RC Check] Traditional RC: Enable=%d, State=%d\r\n",
rc_app_state.rc_traditional_enable,
rc_app_state.rc_traditional_state);
/******************************************************************/
// 启动定时器500ms周期
timerStart(&rc_timer, 500, 1);
} }
@@ -195,30 +210,30 @@ void rcInputHandler(void *signal_id)
else if (rc_app_state.rc_16ch_state == RC_NODE_ONLINE) else if (rc_app_state.rc_16ch_state == RC_NODE_ONLINE)
{ {
// 16通道遥控器在线使用16通道遥控器数据 // 16通道遥控器在线使用16通道遥控器数据
// 通道2CH2速度映射 -2000~2000 // 通道2CH2速度映射 -2000~2000 需要反相
int16_t processed_ch2 = remote_control_16ch_output.frame.CH2 - RC_CH_MID_VALUE; int16_t processed_ch2 = remote_control_16ch_output.frame.CH2 - RC_CH_MID_VALUE;
if (processed_ch2 < -RC_DEADZONE) if (processed_ch2 < -RC_DEADZONE)
{ {
un_remote_control_input.bit_data.speed = (int16_t)(processed_ch2 * 2000.0f / (RC_CH_MAX_VALUE - RC_CH_MID_VALUE)); un_remote_control_input.bit_data.speed = -(int16_t)(processed_ch2 * 2000.0f / (RC_CH_MAX_VALUE - RC_CH_MID_VALUE));
} }
else if (processed_ch2 > RC_DEADZONE) else if (processed_ch2 > RC_DEADZONE)
{ {
un_remote_control_input.bit_data.speed = (int16_t)(processed_ch2 * 2000.0f / (RC_CH_MAX_VALUE - RC_CH_MID_VALUE)); un_remote_control_input.bit_data.speed = -(int16_t)(processed_ch2 * 2000.0f / (RC_CH_MAX_VALUE - RC_CH_MID_VALUE));
} }
else else
{ {
un_remote_control_input.bit_data.speed = 0; un_remote_control_input.bit_data.speed = 0;
} }
// 通道1CH1转向映射 -20000~20000 // 通道1CH1转向映射 -20000~20000 需要反相
int16_t processed_ch1 = remote_control_16ch_output.frame.CH1 - RC_CH_MID_VALUE; int16_t processed_ch1 = remote_control_16ch_output.frame.CH1 - RC_CH_MID_VALUE;
if (processed_ch1 < -RC_DEADZONE) if (processed_ch1 < -RC_DEADZONE)
{ {
un_remote_control_input.bit_data.curvature = (int16_t)(processed_ch1 * 20000.0f / (RC_CH_MAX_VALUE - RC_CH_MID_VALUE)); un_remote_control_input.bit_data.curvature = -(int16_t)(processed_ch1 * 20000.0f / (RC_CH_MAX_VALUE - RC_CH_MID_VALUE));
} }
else if (processed_ch1 > RC_DEADZONE) else if (processed_ch1 > RC_DEADZONE)
{ {
un_remote_control_input.bit_data.curvature = (int16_t)(processed_ch1 * 20000.0f / (RC_CH_MAX_VALUE - RC_CH_MID_VALUE)); un_remote_control_input.bit_data.curvature = -(int16_t)(processed_ch1 * 20000.0f / (RC_CH_MAX_VALUE - RC_CH_MID_VALUE));
} }
else else
{ {

View File

@@ -224,9 +224,9 @@ typedef union _UnRequestFrame
typedef struct _StrRemoteControlInput typedef struct _StrRemoteControlInput
{ {
//-----接收数据0x12000013---------------------------------------------- //-----接收数据0x12000013----------------------------------------------
unsigned int speed : 16; // 速度 int16_t speed ; // 速度
unsigned int curvature : 16; // 曲率 int16_t curvature ; // 曲率
unsigned int reserve1 : 16; // 遥控轴 int16_t reserve1 ; // 遥控轴
unsigned int switch_a : 1; // SwA unsigned int switch_a : 1; // SwA
unsigned int switch_b : 2; // SwB 急停开关 1释放 0/2是急停 unsigned int switch_b : 2; // SwB 急停开关 1释放 0/2是急停
@@ -235,7 +235,7 @@ typedef struct _StrRemoteControlInput
unsigned int reserve2 : 1; // 保留 unsigned int reserve2 : 1; // 保留
unsigned int reserve3 : 1; // 保留 unsigned int reserve3 : 1; // 保留
unsigned int enable : 8; // 使能 int8_t enable ; // 使能
} StrRemoteControlInput; } StrRemoteControlInput;
typedef union _UnRemoteControlInput typedef union _UnRemoteControlInput