From f82b125112def26d6dba0598036740096b3fb48a Mon Sep 17 00:00:00 2001 From: ZHAISHUI04 <3150778793@qq.com> Date: Fri, 25 Apr 2025 19:35:10 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E9=80=82=E9=85=8D=E4=B9=90=E8=BF=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MDK-ARM/R2.uvoptx | 107 +------------------- MDK-ARM/R2/R2.axf | Bin 2826344 -> 2833188 bytes User/Algorithm/user_math.c | 5 +- User/Algorithm/user_math.h | 2 +- User/device/cmd.c | 90 +++++------------ User/device/cmd.h | 21 +++- User/device/dr16.c | 196 +++++++++++++++++++++++++------------ User/device/dr16.h | 45 ++++++--- User/task/dr16_task.c | 33 ++----- 9 files changed, 223 insertions(+), 276 deletions(-) diff --git a/MDK-ARM/R2.uvoptx b/MDK-ARM/R2.uvoptx index 7c29790..a44139d 100644 --- a/MDK-ARM/R2.uvoptx +++ b/MDK-ARM/R2.uvoptx @@ -153,112 +153,7 @@ 0 1 - chassis - - - 1 - 1 - ctrl - - - 2 - 1 - dr16,0x0A - - - 3 - 1 - UP_t,0x0A - - - 4 - 1 - UP,0x0A - - - 5 - 1 - can,0x0A - - - 6 - 1 - up_cmd,0x0A - - - 7 - 1 - rc_ctrl - - - 8 - 1 - up_cmd - - - 9 - 1 - cmd,0x0A - - - 10 - 1 - ctrl,0x0A - - - 11 - 1 - ctrl_up,0x0A - - - 12 - 1 - task_runtime,0x0A - - - 13 - 1 - can,0x0A - - - 14 - 1 - can_rx,0x0A - - - 15 - 1 - can_out,0x0A - - - 16 - 1 - gcan - - - 17 - 1 - raw_tx,0x0A - - - 18 - 1 - raw_rx2,0x0A - - - 19 - 1 - can_rx,0x0A - - - 20 - 1 - can_out - - - 21 - 1 - UP_CAN_out,0x0A + rc_ctrl,0x0A diff --git a/MDK-ARM/R2/R2.axf b/MDK-ARM/R2/R2.axf index 3d40118e6362054cb38ed19a39c72c0b646a14af..4b82759f0733102d78de8a118c3e701dda266942 100644 GIT binary patch delta 124788 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

~C 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 diff --git a/User/Algorithm/user_math.c b/User/Algorithm/user_math.c index 3d163b4..52b02c4 100644 --- a/User/Algorithm/user_math.c +++ b/User/Algorithm/user_math.c @@ -27,7 +27,10 @@ { return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; } - +// 对摇杆输出做指数曲线映射,提升小范围操控精度 +float expo_map(float value, float expo_factor) { + return value * (1 - expo_factor) + value * fabs(value) * expo_factor; +} int Setint_Deadzone(int value,int deadzone) { if(value>=-deadzone&&value<=deadzone) diff --git a/User/Algorithm/user_math.h b/User/Algorithm/user_math.h index 766dc9a..8021299 100644 --- a/User/Algorithm/user_math.h +++ b/User/Algorithm/user_math.h @@ -159,5 +159,5 @@ PolarCoordinate_t addPolarVectors(PolarCoordinate_t v1, PolarCoordinate_t v2); uint8_t average(uint8_t arr[], uint8_t n); int abs_value(int num); - +float expo_map(float value, float expo_factor) ; #endif diff --git a/User/device/cmd.c b/User/device/cmd.c index d73c2f7..23636e3 100644 --- a/User/device/cmd.c +++ b/User/device/cmd.c @@ -29,37 +29,16 @@ return 0; static void CMD_RcLogic(const CMD_RC_t *rc, CMD_t *cmd) { - /* 将操纵杆的对应值转换为底盘的控制向量和云台变化的欧拉角 */ -// RC_dr16 , -// RC_r12ds -// - - /*乐迪反馈值转换(-1 -- 1 )范围*/ - -// if(rc->ch_x<0) cmd->Vx =map_fp32(rc->ch_x,-337,0,-1,0); -// else cmd->Vx =map_fp32(rc->ch_x,0,310,0,1); -// -// -// if(rc->ch_y<0) cmd->Vy =map_fp32(rc->ch_y,-260,0,-1,0); -// else cmd->Vy =map_fp32(rc->ch_y,0,312,0,1); - -// if(rc->ch_w<0) cmd->Vw =map_fp32(rc->ch_w,-308,0,-1,0); -// else cmd->Vw =map_fp32(rc->ch_w,0,291,0,1); -// cmd->key_ctrl_l = rc->key [0]; -// cmd->key_ctrl_r = rc->key [1]; -// + cmd->Vx = rc->dr16.ch_r_x; + cmd->Vy = rc->dr16.ch_r_y; + cmd->Vw = rc->dr16.ch_l_x; + cmd->poscamear = rc->dr16.ch_l_y; - cmd->Vx = rc->ch_r_x; - cmd->Vy = rc->ch_r_y; - cmd->Vw = rc->ch_l_x; - - cmd->poscamear = rc->ch_l_y; - - cmd->key_ctrl_l = rc->sw_l; - cmd->key_ctrl_r = rc->sw_r ; + cmd->key_ctrl_l = rc->dr16.sw_l; + cmd->key_ctrl_r = rc->dr16.sw_r ; } @@ -80,7 +59,7 @@ int8_t CMD_ParseRc(CMD_t *cmd,CMD_RC_t *rc){ if (rc == NULL) return -1; /*c当rc丢控时,恢复机器人至默认状态 */ - if ((rc->sw_l == CMD_SW_ERR) || (rc->sw_r == CMD_SW_ERR)) { + if ((rc->dr16.sw_l == CMD_SW_ERR) || (rc->dr16.sw_r == CMD_SW_ERR)) { CMD_RcLostLogic(cmd); } else { CMD_RcLogic(rc, cmd); @@ -123,69 +102,52 @@ int8_t CMD_ParseNuc(CMD_t *cmd,CMD_NUC_t *n){ -/* - 遥控器模式重新分配 - 这一部分没有设置具体的模式名,后期根据需要修改 - 遥控器模式(RC): - 左按键 --- 右按键 - mode1 - up no_mode - mode2 - - - mode3 - down no_mode - mode4 - - mid auto_navi(0x09)雷达导航 - -*/ /*遥控器,上下层通用,按键控制,统一到cmd*/ int8_t CMD_ParseRC(CMD_t *cmd,const CMD_RC_t *rc) { if(cmd == NULL) return -1; - cmd->Vx = rc->ch_r_x; - cmd->Vy = rc->ch_r_y; - cmd->Vw = rc->ch_l_x; + cmd->Vx = rc->dr16.ch_r_x; + cmd->Vy = rc->dr16.ch_r_y; + cmd->Vw = rc->dr16.ch_l_x; - cmd->poscamear = rc->ch_l_y; + cmd->poscamear = rc->dr16.ch_l_y; - cmd->key_ctrl_l = rc->sw_l; - cmd->key_ctrl_r = rc->sw_r ; + cmd->key_ctrl_l = rc->dr16.sw_l; + cmd->key_ctrl_r = rc->dr16.sw_r ; - if ((rc->sw_l == CMD_SW_ERR) || (rc->sw_r == CMD_SW_ERR)) { + if ((rc->dr16.sw_l == CMD_SW_ERR) || (rc->dr16.sw_r == CMD_SW_ERR)) { cmd->CMD_CtrlType =RELAXED; } - else if(rc->sw_l==CMD_SW_UP) + else if(rc->dr16.sw_l==CMD_SW_UP) { cmd ->CMD_CtrlType =RCcontrol; - if(rc->sw_r ==CMD_SW_UP) cmd ->CMD_mode =Pitch; //左上,右上,投篮,设置好的 + if(rc->dr16.sw_r ==CMD_SW_UP) cmd ->CMD_mode =Pitch; //左上,右上,投篮,设置好的 - if(rc->sw_r ==CMD_SW_MID) cmd ->CMD_mode =Normal; //左上,右中,无模式 + if(rc->dr16.sw_r ==CMD_SW_MID) cmd ->CMD_mode =Normal; //左上,右中,无模式 - if(rc->sw_r ==CMD_SW_DOWN) cmd ->CMD_mode =Normal; //左上,右上,手动调整 + if(rc->dr16.sw_r ==CMD_SW_DOWN) cmd ->CMD_mode =Normal; //左上,右上,手动调整 } - else if(rc->sw_l==CMD_SW_MID) + else if(rc->dr16.sw_l==CMD_SW_MID) { cmd ->CMD_CtrlType =AUTO; - if(rc->sw_r ==CMD_SW_UP) cmd ->CMD_mode =AUTO_NAVI; //左中,右中,雷达 + if(rc->dr16.sw_r ==CMD_SW_UP) cmd ->CMD_mode =AUTO_NAVI; //左中,右中,雷达 - if(rc->sw_r ==CMD_SW_MID) cmd ->CMD_mode =Normal; //左中,右中,无模式 + if(rc->dr16.sw_r ==CMD_SW_MID) cmd ->CMD_mode =Normal; //左中,右中,无模式 - if(rc->sw_r ==CMD_SW_DOWN) cmd ->CMD_mode =AUTO_PICK; //左中,右下,视觉 + if(rc->dr16.sw_r ==CMD_SW_DOWN) cmd ->CMD_mode =AUTO_PICK; //左中,右下,视觉 } - else if(rc->sw_l==CMD_SW_DOWN) + else if(rc->dr16.sw_l==CMD_SW_DOWN) { cmd ->CMD_CtrlType =RCcontrol; - if(rc->sw_r ==CMD_SW_UP) cmd ->CMD_mode =Normal; //左下,右上,投篮 - if(rc->sw_r ==CMD_SW_MID) cmd ->CMD_mode =Normal; //左下,右中,无模式 - if(rc->sw_r ==CMD_SW_DOWN) cmd ->CMD_mode =Normal; //左下,右上,无模式 + if(rc->dr16.sw_r ==CMD_SW_UP) cmd ->CMD_mode =Normal; //左下,右上,投篮 + if(rc->dr16.sw_r ==CMD_SW_MID) cmd ->CMD_mode =Normal; //左下,右中,无模式 + if(rc->dr16.sw_r ==CMD_SW_DOWN) cmd ->CMD_mode =Normal; //左下,右上,无模式 } diff --git a/User/device/cmd.h b/User/device/cmd.h index 986e80d..9efab0d 100644 --- a/User/device/cmd.h +++ b/User/device/cmd.h @@ -54,23 +54,36 @@ typedef enum { CMD_SW_MID = 3, CMD_SW_DOWN = 2, } CMD_SwitchPos_t; - +typedef enum{ + RC_DR16, + RC_LD +}rc_type_t; /*遥控器值,使用CMD_RcLogic函数传入CMD_t结构体*/ typedef struct { + + rc_type_t rc_type; + + struct { float ch_l_x; /* 遥控器左侧摇杆横轴值,上为正 */ float ch_l_y; /* 遥控器左侧摇杆纵轴值,右为正 */ float ch_r_x; /* 遥控器右侧摇杆横轴值,上为正 */ float ch_r_y; /* 遥控器右侧摇杆纵轴值,右为正 */ - float ch_res; /* 第五通道值 */ - CMD_SwitchPos_t sw_r; /* 右侧拨杆位置 */ CMD_SwitchPos_t sw_l; /* 左侧拨杆位置 */ - uint16_t key; /* 按键值 */ uint16_t res; /* 保留,未启用 */ + }__attribute__((packed))dr16; + + struct { + fp32 map_ch[4]; + int16_t ch[4]; + int16_t sw[8]; + + }__attribute__((packed))LD; + } __attribute__((packed))CMD_RC_t; diff --git a/User/device/dr16.c b/User/device/dr16.c index 04454d2..9e4394f 100644 --- a/User/device/dr16.c +++ b/User/device/dr16.c @@ -12,42 +12,132 @@ #include "error_detect.h" +//#define DR16_t +#define LD_t +#ifdef DR16 +#define FRAME_LEN 36 +#elif defined(LD_t) + +#define FRAME_LEN 25 + +#endif /* Private define ----------------------------------------------------------- */ -#define DR16_CH_VALUE_MIN (364u) -#define DR16_CH_VALUE_MID (1024u) -#define DR16_CH_VALUE_MAX (1684u) -/* Private macro ------------------------------------------------------------ */ -/* Private typedef ---------------------------------------------------------- */ -/* Private variables -------------------------------------------------------- */ +#define RC_CH_VALUE_MIN ((uint16_t)364) +#define RC_CH_VALUE_MID ((uint16_t)1024) +#define RC_CH_VALUE_MAX ((uint16_t)1684) static osThreadId_t thread_alert; -uint8_t cbuf[36]; //此处设置为两帧字节的长度 若为一帧会出现乱码的情况 -/* Private function -------------------------------------------------------- */ -static void DR16_RxCpltCallback(void) { +static uint8_t cbuf[FRAME_LEN]; //此处设置为两帧字节的长度 若为一帧会出现乱码的情况 + +/*通用,初始化,串口回调注册,dma数据接收*/ +int8_t RC_SBUS_Init(void ) +{ + if ((thread_alert = osThreadGetId()) == NULL) return DEVICE_ERR_NULL; + + BSP_UART_RegisterCallback(BSP_UART_REMOTE, BSP_UART_IDLE_LINE_CB, + RC_SBUS_RxCpltCallback); + return DEVICE_OK; +} + +static void RC_SBUS_RxCpltCallback(void) { osThreadFlagsSet(thread_alert, SIGNAL_DR16_RAW_REDY); // detect_hook(DR16_TOE); } +int8_t RC_SBUS_Restart(void) { + __HAL_UART_DISABLE(BSP_UART_GetHandle(BSP_UART_REMOTE)); + __HAL_UART_ENABLE(BSP_UART_GetHandle(BSP_UART_REMOTE)); + return DEVICE_OK; +} +int8_t RC_SBUS_StartDmaRecv(void) { + + if (HAL_UARTEx_ReceiveToIdle_DMA(BSP_UART_GetHandle(BSP_UART_REMOTE), + (uint8_t *)cbuf, + sizeof(cbuf)) == HAL_OK) + return DEVICE_OK; + return DEVICE_ERR; +} +bool RC_SBUS_WaitDmaCplt(uint32_t timeout) { + return (osThreadFlagsWait(SIGNAL_DR16_RAW_REDY, osFlagsWaitAll, timeout) == + SIGNAL_DR16_RAW_REDY); +} +/*乐迪数据解析 */ +int8_t LD_ParseRaw( RC_ctrl_t *rc_ctrl) +{ + rc_ctrl->ch[0] = (cbuf[1] | (cbuf[2] << 8)) & 0x07ff; //!< Channel 0 + rc_ctrl->ch[1] = ((cbuf[2] >> 3) | (cbuf[3] << 5)) & 0x07ff; //!< Channel 1 + rc_ctrl->ch[2] = ((cbuf[3] >> 6) | (cbuf[4] << 2) | //!< Channel 2 + (cbuf[5] << 10)) &0x07ff; + rc_ctrl->ch[3] = ((cbuf[5] >> 1) | (cbuf[6] << 7)) & 0x07ff; //!< Channel 3 + + rc_ctrl->sw[0] = ((int16_t)cbuf[6] >> 4 | ((int16_t)cbuf[7] << 4 )) & 0x07FF; //!< Switch left + rc_ctrl->sw[1] = ((int16_t)cbuf[7] >> 7 | ((int16_t)cbuf[8] << 1 ) | (int16_t)cbuf[9] << 9 ) & 0x07FF; //!< Switch right + rc_ctrl->sw[2] = ((int16_t)cbuf[9] >> 2 | ((int16_t)cbuf[10] << 6 )) & 0x07FF;; //!< Mouse X axis + rc_ctrl->sw[3] = ((int16_t)cbuf[10] >> 5 | ((int16_t)cbuf[11] << 3 )) & 0x07FF; //!< Mouse Y axis + rc_ctrl->sw[4] = ((int16_t)cbuf[12] << 0 | ((int16_t)cbuf[13] << 8 )) & 0x07FF; //!< Mouse Z axis + rc_ctrl->sw[5] = ((int16_t)cbuf[13] >> 3 | ((int16_t)cbuf[14] << 5 )) & 0x07FF; //!< Mouse Left Is Press ? + rc_ctrl->sw[6] = ((int16_t)cbuf[14] >> 6 | ((int16_t)cbuf[15] << 2 ) | (int16_t)cbuf[16] << 10 ) & 0x07FF; //!< Mouse Right Is Press ? + rc_ctrl->sw[7] = ((int16_t)cbuf[16] >> 1 | ((int16_t)cbuf[17] << 7 )) & 0x07FF; //!< KeyBoard value + rc_ctrl->ch[0] -= RC_CH_VALUE_MID; + rc_ctrl->ch[1] -= RC_CH_VALUE_MID; + rc_ctrl->ch[2] -= RC_CH_VALUE_MID; + rc_ctrl->ch[3] -= RC_CH_VALUE_MID; + + + rc_ctrl->ch[0] += 24; //y(-694,693)左右 + rc_ctrl->ch[1] = -rc_ctrl->ch[1]-24; //x(-693,694)前后 + rc_ctrl->ch[2] = -rc_ctrl->ch[2]+764; //m(95,1482)油门 + rc_ctrl->ch[3] += 24; //w(-694,693)旋转 + + rc_ctrl->ch[1] = map_int(rc_ctrl->ch[1],-693,694,-700,700); //x映射到(-700,700) + rc_ctrl->ch[0] = map_int(rc_ctrl->ch[0],-694,693,-700,700); //y映射到(-700,700) + rc_ctrl->ch[3] = 0.5*(rc_ctrl->ch[3]); //w + +// //死区(-30,30) +// if(rc_ctrl->ch[0]>-50&&rc_ctrl->ch[0]<50) rc_ctrl->ch[0]=0; +// if(rc_ctrl->ch[1]>-50&&rc_ctrl->ch[1]<50) rc_ctrl->ch[1]=0; +// if(rc_ctrl->ch[2]>-50&&rc_ctrl->ch[2]<50) rc_ctrl->ch[2]=0; +// if(rc_ctrl->ch[3]>-50&&rc_ctrl->ch[3]<50) rc_ctrl->ch[3]=0; +// + + rc_ctrl->map_ch[0]=map_fp32(rc_ctrl->ch[0],-719,680,-1,1); + rc_ctrl->map_ch[1]=map_fp32(rc_ctrl->ch[1],-567,832,-1,1); + rc_ctrl->map_ch[2]=map_fp32(rc_ctrl->ch[2],95,1482,0,1); + rc_ctrl->map_ch[3]=map_fp32(rc_ctrl->ch[3],-317,375,-1,1); + + rc_ctrl->map_ch[0]=expo_map(rc_ctrl->map_ch[0], 0.7f); + rc_ctrl->map_ch[1]=expo_map(rc_ctrl->map_ch[1],0.7f); + rc_ctrl->map_ch[2]=expo_map(rc_ctrl->map_ch[2],0.7f); + rc_ctrl->map_ch[3]=expo_map(rc_ctrl->map_ch[3],0.7f); + + //死区(-30,30) + if(rc_ctrl->map_ch[0]>-0.05&&rc_ctrl->map_ch[0]<0.05) rc_ctrl->map_ch[0]=0; + if(rc_ctrl->map_ch[1]>-0.05&&rc_ctrl->map_ch[1]<0.05) rc_ctrl->map_ch[1]=0; + if(rc_ctrl->map_ch[2]>-0.05&&rc_ctrl->map_ch[2]<0.05) rc_ctrl->map_ch[2]=0; + if(rc_ctrl->map_ch[3]>-0.05&&rc_ctrl->map_ch[3]<0.05) rc_ctrl->map_ch[3]=0; + +} +/*dr16数据解析+校验 */ static bool DR16_DataCorrupted(const DR16_t *dr16) { if (dr16 == NULL) return DEVICE_ERR_NULL; - if ((dr16->data.ch_r_x < DR16_CH_VALUE_MIN) || - (dr16->data.ch_r_x > DR16_CH_VALUE_MAX)) + if ((dr16->data.ch_r_x < RC_CH_VALUE_MIN) || + (dr16->data.ch_r_x > RC_CH_VALUE_MAX)) return true; - if ((dr16->data.ch_r_y < DR16_CH_VALUE_MIN) || - (dr16->data.ch_r_y > DR16_CH_VALUE_MAX)) + if ((dr16->data.ch_r_y < RC_CH_VALUE_MIN) || + (dr16->data.ch_r_y > RC_CH_VALUE_MAX)) return true; - if ((dr16->data.ch_l_x < DR16_CH_VALUE_MIN) || - (dr16->data.ch_l_x > DR16_CH_VALUE_MAX)) + if ((dr16->data.ch_l_x < RC_CH_VALUE_MIN) || + (dr16->data.ch_l_x > RC_CH_VALUE_MAX)) return true; if ((dr16->data.ch_l_y < 1000u) || - (dr16->data.ch_l_y > DR16_CH_VALUE_MAX)) + (dr16->data.ch_l_y > RC_CH_VALUE_MAX)) return true; if (dr16->data.sw_l == 0) return true; @@ -56,35 +146,6 @@ static bool DR16_DataCorrupted(const DR16_t *dr16) { return false; } -/* Exported functions ------------------------------------------------------- */ -int8_t DR16_Init(DR16_t *dr16) { - if (dr16 == NULL) return DEVICE_ERR_NULL; - if ((thread_alert = osThreadGetId()) == NULL) return DEVICE_ERR_NULL; - - BSP_UART_RegisterCallback(BSP_UART_REMOTE, BSP_UART_IDLE_LINE_CB, - DR16_RxCpltCallback); - return DEVICE_OK; -} - -int8_t DR16_Restart(void) { - __HAL_UART_DISABLE(BSP_UART_GetHandle(BSP_UART_REMOTE)); - __HAL_UART_ENABLE(BSP_UART_GetHandle(BSP_UART_REMOTE)); - return DEVICE_OK; -} - -int8_t DR16_StartDmaRecv(DR16_t *dr16) { - if (HAL_UARTEx_ReceiveToIdle_DMA(BSP_UART_GetHandle(BSP_UART_REMOTE), - (uint8_t *)cbuf, - sizeof(cbuf)) == HAL_OK) - return DEVICE_OK; - return DEVICE_ERR; -} - -bool DR16_WaitDmaCplt(uint32_t timeout) { - return (osThreadFlagsWait(SIGNAL_DR16_RAW_REDY, osFlagsWaitAll, timeout) == - SIGNAL_DR16_RAW_REDY); -} - int8_t DR16_ParseRaw(DR16_t *dr16) { if(dr16 ==NULL) return DEVICE_ERR_NULL; @@ -97,31 +158,48 @@ int8_t DR16_ParseRaw(DR16_t *dr16) return 1; } - -int8_t DR16_ParseRC(const DR16_t *dr16, CMD_RC_t *rc) { +int8_t RC_ParseRC( DR16_t *dr16, RC_ctrl_t *rc_ctrl, CMD_RC_t *rc) { if (dr16 == NULL) return DEVICE_ERR_NULL; - + if (rc_ctrl == NULL) return DEVICE_ERR_NULL; +#ifdef DR16 + /*DR16部分*/ + rc->rc_type=RC_DR16; + DR16_ParseRaw(dr16); if (DR16_DataCorrupted(dr16)) { return DEVICE_ERR; } else { memset(rc, 0, sizeof(*rc)); } - float full_range = (float)(DR16_CH_VALUE_MAX - DR16_CH_VALUE_MIN); - rc->ch_r_x = 2 * ((float)dr16->data.ch_r_x - DR16_CH_VALUE_MID) / full_range; - rc->ch_r_y = 2 * ((float)dr16->data.ch_r_y - DR16_CH_VALUE_MID) / full_range; - rc->ch_l_x = 2 * ((float)dr16->data.ch_l_x - DR16_CH_VALUE_MID) / full_range; - rc->ch_l_y = 2 * ((float)dr16->data.ch_l_y - DR16_CH_VALUE_MID) / full_range; + float full_range = (float)(RC_CH_VALUE_MAX - RC_CH_VALUE_MIN); - rc->sw_l = (CMD_SwitchPos_t)dr16->data.sw_l; - rc->sw_r = (CMD_SwitchPos_t)dr16->data.sw_r; + rc->dr16.ch_r_x = 2 * ((float)dr16->data.ch_r_x - RC_CH_VALUE_MID) / full_range; + rc->dr16.ch_r_y = 2 * ((float)dr16->data.ch_r_y - RC_CH_VALUE_MID) / full_range; + rc->dr16.ch_l_x = 2 * ((float)dr16->data.ch_l_x - RC_CH_VALUE_MID) / full_range; + rc->dr16.ch_l_y = 2 * ((float)dr16->data.ch_l_y - RC_CH_VALUE_MID) / full_range; - rc->key = dr16->data.key; + rc->dr16.sw_l = (CMD_SwitchPos_t)dr16->data.sw_l; + rc->dr16.sw_r = (CMD_SwitchPos_t)dr16->data.sw_r; + + rc->dr16.key = dr16->data.key; // rc->ch_res = ((float)dr16->data.res - DR16_CH_VALUE_MID) / full_range; + + +#elif defined(LD_t) + + /*乐迪*/ + rc->rc_type=RC_LD; + LD_ParseRaw(rc_ctrl); + + memcpy(&rc->LD, rc_ctrl, sizeof(RC_ctrl_t)); +#endif return DEVICE_OK; + } + +/*离线处理*/ int8_t DR16_HandleOffline(const DR16_t *dr16, CMD_RC_t *rc) { if (dr16 == NULL) return DEVICE_ERR_NULL; if (rc == NULL) return DEVICE_ERR_NULL; @@ -129,8 +207,4 @@ int8_t DR16_HandleOffline(const DR16_t *dr16, CMD_RC_t *rc) { (void)dr16; memset(rc, 0, sizeof(*rc)); return 0; -} - - - - +} \ No newline at end of file diff --git a/User/device/dr16.h b/User/device/dr16.h index 2b99679..037c81f 100644 --- a/User/device/dr16.h +++ b/User/device/dr16.h @@ -11,11 +11,6 @@ /* Exported constants ------------------------------------------------------- */ /* Exported macro ----------------------------------------------------------- */ /* Exported types ----------------------------------------------------------- */ - - - - - typedef __packed struct { uint16_t ch_r_x : 11; @@ -37,17 +32,39 @@ typedef struct { DR16_Data_t data; } DR16_t; -/* Exported functions prototypes -------------------------------------------- */ -int8_t DR16_Init(DR16_t *dr16); -int8_t DR16_Restart(void); -int8_t DR16_StartDmaRecv(DR16_t *dr16); -bool DR16_WaitDmaCplt(uint32_t timeout); + +#define SBUS_RX_BUF_NUM 25u + +#define RC_FRAME_LENGTH 18u + + + +typedef __packed struct +{ + fp32 map_ch[4]; + int16_t ch[4]; + int16_t sw[8]; + +} RC_ctrl_t; + + + + + + + + +int8_t RC_SBUS_Init(void ); +static void RC_SBUS_RxCpltCallback(void) ; +int8_t RC_SBUS_Restart(void) ; +int8_t RC_SBUS_StartDmaRecv(void) ; +bool RC_SBUS_WaitDmaCplt(uint32_t timeout) ; +int8_t LD_ParseRaw( RC_ctrl_t *rc_ctrl); +static bool DR16_DataCorrupted(const DR16_t *dr16) ; int8_t DR16_ParseRaw(DR16_t *dr16); -int8_t DR16_ParseRC(const DR16_t *dr16, CMD_RC_t *rc); -int8_t DR16_HandleOffline(const DR16_t *dr16, CMD_RC_t *rc); +int8_t RC_ParseRC( DR16_t *dr16, RC_ctrl_t *rc_ctrl, CMD_RC_t *rc) ; +int8_t DR16_HandleOffline(const DR16_t *dr16, CMD_RC_t *rc) ; #endif - - diff --git a/User/task/dr16_task.c b/User/task/dr16_task.c index d465e15..7ad1e7e 100644 --- a/User/task/dr16_task.c +++ b/User/task/dr16_task.c @@ -12,19 +12,17 @@ /* Private define ----------------------------------------------------------- */ /* Private macro ------------------------------------------------------------ */ /* Private variables -------------------------------------------------------- */ - - - #ifdef DEBUG DR16_t dr16; CMD_RC_t cmd_rc; +RC_ctrl_t ld; #else static DR16_t dr16; static CMD_RC_t cmd_rc; + static RC_ctrl_t cc; + #endif - - /* Private function --------------------------------------------------------- */ /* Exported functions ------------------------------------------------------- */ @@ -35,29 +33,20 @@ static CMD_RC_t cmd_rc; */ void Task_dr16(void *argument) { (void)argument; /* 未使用,消除警告 */ - const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_DR16; - uint32_t tick = osKernelGetTickCount(); - - - - DR16_Init(&dr16); /* 初始化dr16 */ + RC_SBUS_Init(); /* 初始化dr16 */ while (1) { - - #ifdef DEBUG /* */ task_runtime.stack_water_mark.dr16 = osThreadGetStackSpace(osThreadGetId()); #endif - /* 开启DMA */ - DR16_StartDmaRecv(&dr16); + RC_SBUS_StartDmaRecv(); - if (DR16_WaitDmaCplt(30)) { - /* 转换 */ - DR16_ParseRaw(&dr16); - DR16_ParseRC(&dr16, &cmd_rc); + if (RC_SBUS_WaitDmaCplt(30)) { + + RC_ParseRC(&dr16,&ld, &cmd_rc); } else { /* 处理遥控器离线 */ DR16_HandleOffline(&dr16, &cmd_rc); @@ -65,10 +54,4 @@ void Task_dr16(void *argument) { osMessageQueueReset(task_runtime.msgq.cmd.raw.rc); osMessageQueuePut(task_runtime.msgq.cmd.raw.rc, &cmd_rc, 0, 0); } - - - tick += delay_tick; /* 计算下一个唤醒时*/ - - osDelay(10); - } From a70e50b82219a008e46aeb8a3e27009e5ec0c8d4 Mon Sep 17 00:00:00 2001 From: ZHAISHUI04 <3150778793@qq.com> Date: Fri, 25 Apr 2025 19:50:22 +0800 Subject: [PATCH 2/2] . --- MDK-ARM/R2.uvoptx | 102 ++++++-------- MDK-ARM/R2.uvprojx | 30 ++--- MDK-ARM/R2/R2.axf | Bin 2833188 -> 2829388 bytes User/bsp/bsp_usart.h | 1 - User/device/LD_remote.c | 31 ----- User/device/LD_remote.h | 21 --- User/device/motor_control.c | 7 - User/device/motor_control.h | 23 ---- User/device/r12ds.c | 192 --------------------------- User/device/r12ds.h | 29 ---- User/device/{dr16.c => rc.c} | 31 ++--- User/device/{dr16.h => rc.h} | 10 +- User/device/remote_control.c | 185 -------------------------- User/device/remote_control.h | 42 ------ User/task/error_detect_task.c | 1 - User/task/init.c | 6 +- User/task/r12ds_task.c | 82 ------------ User/task/r12ds_task.h | 16 --- User/task/{dr16_task.c => rc_task.c} | 8 +- User/task/user_task.c | 2 +- User/task/user_task.h | 22 +-- 21 files changed, 84 insertions(+), 757 deletions(-) delete mode 100644 User/device/LD_remote.c delete mode 100644 User/device/LD_remote.h delete mode 100644 User/device/motor_control.c delete mode 100644 User/device/motor_control.h delete mode 100644 User/device/r12ds.c delete mode 100644 User/device/r12ds.h rename User/device/{dr16.c => rc.c} (89%) rename User/device/{dr16.h => rc.h} (92%) delete mode 100644 User/device/remote_control.c delete mode 100644 User/device/remote_control.h delete mode 100644 User/task/r12ds_task.c delete mode 100644 User/task/r12ds_task.h rename User/task/{dr16_task.c => rc_task.c} (88%) diff --git a/MDK-ARM/R2.uvoptx b/MDK-ARM/R2.uvoptx index a44139d..7424a0e 100644 --- a/MDK-ARM/R2.uvoptx +++ b/MDK-ARM/R2.uvoptx @@ -1117,8 +1117,8 @@ 0 0 0 - ..\User\task\dr16_task.c - dr16_task.c + ..\User\task\up_task.c + up_task.c 0 0 @@ -1129,20 +1129,8 @@ 0 0 0 - ..\User\task\r12ds_task.c - r12ds_task.c - 0 - 0 - - - 8 - 73 - 1 - 0 - 0 - 0 - ..\User\task\up_task.c - up_task.c + ..\User\task\rc_task.c + rc_task.c 0 0 @@ -1156,7 +1144,7 @@ 0 9 - 74 + 73 1 0 0 @@ -1168,7 +1156,7 @@ 9 - 75 + 74 1 0 0 @@ -1180,7 +1168,7 @@ 9 - 76 + 75 1 0 0 @@ -1192,7 +1180,7 @@ 9 - 77 + 76 1 0 0 @@ -1204,7 +1192,7 @@ 9 - 78 + 77 1 0 0 @@ -1216,7 +1204,7 @@ 9 - 79 + 78 1 0 0 @@ -1236,7 +1224,7 @@ 0 10 - 80 + 79 1 0 0 @@ -1248,7 +1236,7 @@ 10 - 81 + 80 1 0 0 @@ -1260,7 +1248,7 @@ 10 - 82 + 81 1 0 0 @@ -1272,7 +1260,7 @@ 10 - 83 + 82 1 0 0 @@ -1284,7 +1272,7 @@ 10 - 84 + 83 1 0 0 @@ -1296,31 +1284,7 @@ 10 - 85 - 1 - 0 - 0 - 0 - ..\User\device\dr16.c - dr16.c - 0 - 0 - - - 10 - 86 - 1 - 0 - 0 - 0 - ..\User\device\r12ds.c - r12ds.c - 0 - 0 - - - 10 - 87 + 84 1 0 0 @@ -1330,17 +1294,29 @@ 0 0 + + 10 + 85 + 1 + 0 + 0 + 0 + ..\User\device\rc.c + rc.c + 0 + 0 + Application/User/USB_DEVICE/App - 0 + 1 0 0 0 11 - 88 + 86 1 0 0 @@ -1352,7 +1328,7 @@ 11 - 89 + 87 1 0 0 @@ -1364,7 +1340,7 @@ 11 - 90 + 88 1 0 0 @@ -1378,13 +1354,13 @@ Application/User/USB_DEVICE/Target - 0 + 1 0 0 0 12 - 91 + 89 1 0 0 @@ -1398,13 +1374,13 @@ Middlewares/USB_Device_Library - 0 + 1 0 0 0 13 - 92 + 90 1 0 0 @@ -1416,7 +1392,7 @@ 13 - 93 + 91 1 0 0 @@ -1428,7 +1404,7 @@ 13 - 94 + 92 1 0 0 @@ -1440,7 +1416,7 @@ 13 - 95 + 93 1 0 0 diff --git a/MDK-ARM/R2.uvprojx b/MDK-ARM/R2.uvprojx index f9d4bc2..ee3c96d 100644 --- a/MDK-ARM/R2.uvprojx +++ b/MDK-ARM/R2.uvprojx @@ -1228,21 +1228,16 @@ 1 ..\User\task\error_detect_task.c - - dr16_task.c - 1 - ..\User\task\dr16_task.c - - - r12ds_task.c - 1 - ..\User\task\r12ds_task.c - up_task.c 1 ..\User\task\up_task.c + + rc_task.c + 1 + ..\User\task\rc_task.c + @@ -1308,21 +1303,16 @@ 1 ..\User\device\vofa.c - - dr16.c - 1 - ..\User\device\dr16.c - - - r12ds.c - 1 - ..\User\device\r12ds.c - GO_M8010_6_Driver.c 1 ..\User\device\GO_M8010_6_Driver.c + + rc.c + 1 + ..\User\device\rc.c + diff --git a/MDK-ARM/R2/R2.axf b/MDK-ARM/R2/R2.axf index 4b82759f0733102d78de8a118c3e701dda266942..c6c22e5364c6dd3017dcc96647c4df43dce8650e 100644 GIT binary patch delta 93037 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 delta 94663 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 ijoaX}(#~(qD_Lv^(kofCTSLiT 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ℜL1D;C=sBzmM&L;a2#Y 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 PSxcQI=Ke21{rmp`1*XD2 diff --git a/User/bsp/bsp_usart.h b/User/bsp/bsp_usart.h index cef04b6..4974127 100644 --- a/User/bsp/bsp_usart.h +++ b/User/bsp/bsp_usart.h @@ -7,7 +7,6 @@ #define SBUS_RX_BUF_NUM 50u - #define RC_FRAME_LENGTH 25u typedef enum { diff --git a/User/device/LD_remote.c b/User/device/LD_remote.c deleted file mode 100644 index 14c70bf..0000000 --- a/User/device/LD_remote.c +++ /dev/null @@ -1,31 +0,0 @@ -#include "LD_remote.h" -#include - -#include "bsp_usart.h" -#include "error_detect.h" - -static uint8_t sbus_rx_buf_new[SBUS_RX_BUF_NUM]; // SBUS 数据缓冲区 -static RC_Ctrl_New_t rc_ctrl_new; // SBUS 数据结构 - -/* SBUS 数据解析 */ -static void sbus_to_rc_new(volatile const uint8_t *sbus_buf) { - if (sbus_buf == NULL) return; - - rc_ctrl_new.ch[0] = (sbus_buf[1] | (sbus_buf[2] << 8)) & 0x07FF; - rc_ctrl_new.ch[1] = ((sbus_buf[2] >> 3) | (sbus_buf[3] << 5)) & 0x07FF; - rc_ctrl_new.ch[2] = ((sbus_buf[3] >> 6) | (sbus_buf[4] << 2) | (sbus_buf[5] << 10)) & 0x07FF; - rc_ctrl_new.ch[3] = ((sbus_buf[5] >> 1) | (sbus_buf[6] << 7)) & 0x07FF; - - rc_ctrl_new.sw[0] = ((sbus_buf[6] >> 4) | (sbus_buf[7] << 4)) & 0x07FF; - rc_ctrl_new.sw[1] = ((sbus_buf[7] >> 7) | (sbus_buf[8] << 1) | (sbus_buf[9] << 9)) & 0x07FF; -} - -/* 初始化函数 */ -void RC_New_Init(void) { - HAL_UARTEx_ReceiveToIdle_DMA(&huart3, sbus_rx_buf_new, SBUS_RX_BUF_NUM); -} - -/* 获取数据指针 */ -const RC_Ctrl_New_t* RC_New_GetData(void) { - return &rc_ctrl_new; -} \ No newline at end of file diff --git a/User/device/LD_remote.h b/User/device/LD_remote.h deleted file mode 100644 index 5ee6770..0000000 --- a/User/device/LD_remote.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef LD_H -#define LD_H -#include "user_math.h" - - -#include "main.h" - -/* SBUS ݽṹ */ -typedef struct { - int16_t ch[4]; // 4 ͨ - int16_t sw[8]; // 8 -} RC_Ctrl_New_t; - -/* */ -void RC_New_Init(void); -const RC_Ctrl_New_t* RC_New_GetData(void); - - - -#endif - diff --git a/User/device/motor_control.c b/User/device/motor_control.c deleted file mode 100644 index 560da9f..0000000 --- a/User/device/motor_control.c +++ /dev/null @@ -1,7 +0,0 @@ -#include "motor_control.h" -#include "pid.h" -#include "user_math.h" -#include "device\device.h" -#include "can_use.h" - - diff --git a/User/device/motor_control.h b/User/device/motor_control.h deleted file mode 100644 index 2bf0589..0000000 --- a/User/device/motor_control.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef _MOTOR_CONTROL_H_ -#define _MOTOR_CONTROL_H_ - -#include "struct_typedef.h" -#include "pid.h" - -/*󽮵*/ -typedef struct -{ - uint16_t ecd; - int16_t speed_rpm; - int16_t given_current; - uint16_t temperate; - int16_t last_ecd; - int16_t round_cnt; - int16_t total_angle; - uint16_t offset_ecd; - uint32_t msg_cnt; -} DJmotor_measure_t; - - - -#endif \ No newline at end of file diff --git a/User/device/r12ds.c b/User/device/r12ds.c deleted file mode 100644 index e5bbe97..0000000 --- a/User/device/r12ds.c +++ /dev/null @@ -1,192 +0,0 @@ -/* - 乐迪r12ds遥控器。 - 需要根据实际的遥控器通道修改解析的函数 该遥控器采用sbus 用的uart3 - -*/ - - -/* Includes ----------------------------------------------------------------- */ -#include "r12ds.h" -#include "main.h" -#include "error_detect.h" -#include -#include "cmd.h" -#include "user_math.h" - -#ifdef r12ds_t -extern UART_HandleTypeDef huart3; -extern DMA_HandleTypeDef hdma_usart3_rx; - - - -osThreadId_t thread_alert; - -int buf0ready =0; /*不起作用*/ -int buf1ready =0; - -/* Private function -------------------------------------------------------- */ -static void R12DS_IdleCallback(void) { - static uint16_t this_time_rx_len = 0; - if( (hdma_usart3_rx.Instance->CR & DMA_SxCR_CT) == RESET) - { - //current memory buffer used is memory0 - - //disable dma to change dma register - __HAL_DMA_DISABLE(&hdma_usart3_rx); - - //get received data length, length = set_data_length - remain_length - this_time_rx_len = SBUS_RX_BUF_NUM - hdma_usart3_rx.Instance->NDTR; - - //reset set_data_length - hdma_usart3_rx.Instance->NDTR = SBUS_RX_BUF_NUM; - - //change memory0 to memory1 - hdma_usart3_rx.Instance->CR |= DMA_SxCR_CT; - - //enable dma - __HAL_DMA_ENABLE(&hdma_usart3_rx); - - //1 frame length is correct data - if(this_time_rx_len == RC_FRAME_LENGTH) - { -// osThreadFlagsSet(thread_alert,SIGNAL_R12DS_BUF0_REDY); - buf0ready = 1; -// detect_hook(R12DS_TOE); - } - } - else - { - __HAL_DMA_DISABLE(&hdma_usart3_rx); - - this_time_rx_len = SBUS_RX_BUF_NUM - hdma_usart3_rx.Instance->NDTR; - - hdma_usart3_rx.Instance->NDTR = SBUS_RX_BUF_NUM; - - //change memory1 to memory0 - DMA1_Stream1->CR &= ~(DMA_SxCR_CT); - - __HAL_DMA_ENABLE(&hdma_usart3_rx); - - if(this_time_rx_len == RC_FRAME_LENGTH) - { -// osThreadFlagsSet(thread_alert,SIGNAL_R12DS_BUF1_REDY); - buf1ready = 1; -// detect_hook(R12DS_TOE); - } - } -} - -/* Exported functions ------------------------------------------------------- */ - - -int8_t R12ds_DMA_Init(uint8_t *rx1_buf, uint8_t *rx2_buf, uint16_t dma_buf_num) -{ - if((thread_alert = osThreadGetId()) == NULL ) return DEVICE_ERR_NULL; - //enable the dma transfer for the receiver request - SET_BIT(huart3.Instance->CR3, USART_CR3_DMAR); - - //enable idle interrupt - __HAL_UART_ENABLE_IT(&huart3, UART_IT_IDLE); - - //disable dma, to change the dma register - __HAL_DMA_DISABLE(&hdma_usart3_rx); - - //disable dma again but why? - //what's the condition? - while(hdma_usart3_rx.Instance->CR & DMA_SxCR_EN) - { - __HAL_DMA_DISABLE(&hdma_usart3_rx); - } - - //?? - hdma_usart3_rx.Instance->PAR = (uint32_t) & (USART3->DR); - - //memory buffer 1 - hdma_usart3_rx.Instance->M0AR = (uint32_t)(rx1_buf); - - //momory buffer 2 - hdma_usart3_rx.Instance->M1AR = (uint32_t)(rx2_buf); - - //data length - hdma_usart3_rx.Instance->NDTR = dma_buf_num; - - //enable double memory buffer - SET_BIT(hdma_usart3_rx.Instance->CR, DMA_SxCR_DBM); - - - //enable dma - __HAL_DMA_ENABLE(&hdma_usart3_rx); - - BSP_UART_RegisterCallback(BSP_UART_REMOTE, BSP_UART_IDLE_LINE_CB, - R12DS_IdleCallback); - - return 1; -} - - - -int8_t sbus_to_rc(volatile const uint8_t *sbus_buf, CMD_RC_t *rc_ctrl) -{ - if (sbus_buf == NULL || rc_ctrl == NULL) - { - return 0; - } - - - rc_ctrl->ch_x = (sbus_buf[1] | (sbus_buf[2] << 8)) & 0x07ff; //Channel 1 x - rc_ctrl->ch_y = ((sbus_buf[2] >> 3) | (sbus_buf[3] << 5)) & 0x07ff; //Channel 2 mul - rc_ctrl->mul= ((sbus_buf[3] >> 6) | (sbus_buf[4] << 2) | //Channel 3 y - (sbus_buf[5] << 10)) &0x07ff; - rc_ctrl->ch_w = ((sbus_buf[5] >> 1) | (sbus_buf[6] << 7)) & 0x07ff; //Channel 4 w - - rc_ctrl->key[0] = ((int16_t)sbus_buf[6] >> 4 | ((int16_t)sbus_buf[7] << 4 )) & 0x07FF; //Channel 5 - rc_ctrl->key[1] = ((int16_t)sbus_buf[7] >> 7 | ((int16_t)sbus_buf[8] << 1 ) | (int16_t)sbus_buf[9] << 9 ) & 0x07FF; //Channel 6 - rc_ctrl->key[2] = ((int16_t)sbus_buf[9] >> 2 | ((int16_t)sbus_buf[10] << 6 )) & 0x07FF;; //Channel 7 - rc_ctrl->key[3] = ((int16_t)sbus_buf[10] >> 5 | ((int16_t)sbus_buf[11] << 3 )) & 0x07FF; //Channel 8 - rc_ctrl->key[4] = ((int16_t)sbus_buf[12] << 0 | ((int16_t)sbus_buf[13] << 8 )) & 0x07FF; //Channel 9 - rc_ctrl->key[5] = ((int16_t)sbus_buf[13] >> 3 | ((int16_t)sbus_buf[14] << 5 )) & 0x07FF; //Channel 10 - rc_ctrl->key[6] = ((int16_t)sbus_buf[14] >> 6 | ((int16_t)sbus_buf[15] << 2 ) | (int16_t)sbus_buf[16] << 10 ) & 0x07FF; //Channel 11 - rc_ctrl->key[7] = ((int16_t)sbus_buf[16] >> 1 | ((int16_t)sbus_buf[17] << 7 )) & 0x07FF; //Channel 12 - - rc_ctrl->ch_y -= RC_CH_VALUE_OFFSET; - rc_ctrl->ch_x -= RC_CH_VALUE_OFFSET; - rc_ctrl->mul -= RC_CH_VALUE_OFFSET; - rc_ctrl->ch_w -= RC_CH_VALUE_OFFSET; - - - - rc_ctrl->ch_y -= 4; //y(-694,693) - rc_ctrl->ch_x += 3; //x(-693,694) - rc_ctrl->mul = rc_ctrl->mul; //m(-518,843) - rc_ctrl->ch_w += 4; //w(-694,693) - - rc_ctrl->key[2] = map_fp32(rc_ctrl->key[2],306,1694,1694,306); - rc_ctrl->key[3] = map_fp32(rc_ctrl->key[3],306,1694,1694,306); - rc_ctrl->ch_x = map_fp32(rc_ctrl->ch_x,700,-800,-700,700); //x - rc_ctrl->ch_y = map_fp32(rc_ctrl->ch_y,-900,796,700,-700); //y - rc_ctrl->mul = map_fp32(rc_ctrl->mul,-632,901,25,0); //m - rc_ctrl->ch_w = map_fp32(rc_ctrl->ch_w,-820,780,-700,700); - rc_ctrl->ch_w = 0.5f*(rc_ctrl->ch_w); - rc_ctrl->ch_x = -0.5f*(rc_ctrl->ch_x); - rc_ctrl->ch_y = 0.5f*(rc_ctrl->ch_y); -// -//̀死区(-5,5) - if(rc_ctrl->ch_y>-15&&rc_ctrl->ch_y<15) rc_ctrl->ch_y=0; - if(rc_ctrl->ch_x>-15&&rc_ctrl->ch_x<15) rc_ctrl->ch_x=0; - if(rc_ctrl->mul>=0&&rc_ctrl->mul<=3) rc_ctrl->mul=0; - if(rc_ctrl->ch_w>-15&&rc_ctrl->ch_w<15) rc_ctrl->ch_w=0; - - - if( (((int16_t)sbus_buf[16] >> 1 | ((int16_t)sbus_buf[17] << 7 )) & 0x07FF )<380) rc_ctrl->offline =1; //遥控器掉线 - else rc_ctrl->offline =0; - - - return 0; -} - - - - - -#endif - diff --git a/User/device/r12ds.h b/User/device/r12ds.h deleted file mode 100644 index 111c3bc..0000000 --- a/User/device/r12ds.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef _R12DS_H -#define _R12DS_H - -#include -#include "device.h" -#include "bsp_usart.h" -#include "cmd.h" - - -#ifdef r12ds_t - -#define RC_FRAME_LENGTH 25u - - -#define RC_CH_VALUE_OFFSET ((uint16_t)1024) - - - -int8_t R12ds_DMA_Init(uint8_t *rx1_buf, uint8_t *rx2_buf, uint16_t dma_buf_num); - -int8_t sbus_to_rc(volatile const uint8_t *sbus_buf,CMD_RC_t *rc_ctrl); - - - - - -#endif - -#endif diff --git a/User/device/dr16.c b/User/device/rc.c similarity index 89% rename from User/device/dr16.c rename to User/device/rc.c index 9e4394f..026c486 100644 --- a/User/device/dr16.c +++ b/User/device/rc.c @@ -4,7 +4,7 @@ */ /* Includes ----------------------------------------------------------------- */ -#include "dr16.h" +#include "rc.h" #include @@ -72,14 +72,14 @@ int8_t LD_ParseRaw( RC_ctrl_t *rc_ctrl) (cbuf[5] << 10)) &0x07ff; rc_ctrl->ch[3] = ((cbuf[5] >> 1) | (cbuf[6] << 7)) & 0x07ff; //!< Channel 3 - rc_ctrl->sw[0] = ((int16_t)cbuf[6] >> 4 | ((int16_t)cbuf[7] << 4 )) & 0x07FF; //!< Switch left - rc_ctrl->sw[1] = ((int16_t)cbuf[7] >> 7 | ((int16_t)cbuf[8] << 1 ) | (int16_t)cbuf[9] << 9 ) & 0x07FF; //!< Switch right - rc_ctrl->sw[2] = ((int16_t)cbuf[9] >> 2 | ((int16_t)cbuf[10] << 6 )) & 0x07FF;; //!< Mouse X axis - rc_ctrl->sw[3] = ((int16_t)cbuf[10] >> 5 | ((int16_t)cbuf[11] << 3 )) & 0x07FF; //!< Mouse Y axis - rc_ctrl->sw[4] = ((int16_t)cbuf[12] << 0 | ((int16_t)cbuf[13] << 8 )) & 0x07FF; //!< Mouse Z axis - rc_ctrl->sw[5] = ((int16_t)cbuf[13] >> 3 | ((int16_t)cbuf[14] << 5 )) & 0x07FF; //!< Mouse Left Is Press ? - rc_ctrl->sw[6] = ((int16_t)cbuf[14] >> 6 | ((int16_t)cbuf[15] << 2 ) | (int16_t)cbuf[16] << 10 ) & 0x07FF; //!< Mouse Right Is Press ? - rc_ctrl->sw[7] = ((int16_t)cbuf[16] >> 1 | ((int16_t)cbuf[17] << 7 )) & 0x07FF; //!< KeyBoard value + rc_ctrl->sw[0] = ((int16_t)cbuf[6] >> 4 | ((int16_t)cbuf[7] << 4 )) & 0x07FF; + rc_ctrl->sw[1] = ((int16_t)cbuf[7] >> 7 | ((int16_t)cbuf[8] << 1 ) | (int16_t)cbuf[9] << 9 ) & 0x07FF; + rc_ctrl->sw[2] = ((int16_t)cbuf[9] >> 2 | ((int16_t)cbuf[10] << 6 )) & 0x07FF;; + rc_ctrl->sw[3] = ((int16_t)cbuf[10] >> 5 | ((int16_t)cbuf[11] << 3 )) & 0x07FF; + rc_ctrl->sw[4] = ((int16_t)cbuf[12] << 0 | ((int16_t)cbuf[13] << 8 )) & 0x07FF; + rc_ctrl->sw[5] = ((int16_t)cbuf[13] >> 3 | ((int16_t)cbuf[14] << 5 )) & 0x07FF; + rc_ctrl->sw[6] = ((int16_t)cbuf[14] >> 6 | ((int16_t)cbuf[15] << 2 ) | (int16_t)cbuf[16] << 10 ) & 0x07FF; + rc_ctrl->sw[7] = ((int16_t)cbuf[16] >> 1 | ((int16_t)cbuf[17] << 7 )) & 0x07FF; rc_ctrl->ch[0] -= RC_CH_VALUE_MID; rc_ctrl->ch[1] -= RC_CH_VALUE_MID; @@ -114,11 +114,12 @@ int8_t LD_ParseRaw( RC_ctrl_t *rc_ctrl) rc_ctrl->map_ch[3]=expo_map(rc_ctrl->map_ch[3],0.7f); //死区(-30,30) - if(rc_ctrl->map_ch[0]>-0.05&&rc_ctrl->map_ch[0]<0.05) rc_ctrl->map_ch[0]=0; - if(rc_ctrl->map_ch[1]>-0.05&&rc_ctrl->map_ch[1]<0.05) rc_ctrl->map_ch[1]=0; - if(rc_ctrl->map_ch[2]>-0.05&&rc_ctrl->map_ch[2]<0.05) rc_ctrl->map_ch[2]=0; - if(rc_ctrl->map_ch[3]>-0.05&&rc_ctrl->map_ch[3]<0.05) rc_ctrl->map_ch[3]=0; - + if(rc_ctrl->map_ch[0]>-0.05f&&rc_ctrl->map_ch[0]<0.05f) rc_ctrl->map_ch[0]=0; + if(rc_ctrl->map_ch[1]>-0.05f&&rc_ctrl->map_ch[1]<0.05f) rc_ctrl->map_ch[1]=0; + if(rc_ctrl->map_ch[2]>-0.05f&&rc_ctrl->map_ch[2]<0.05f) rc_ctrl->map_ch[2]=0; + if(rc_ctrl->map_ch[3]>-0.05f&&rc_ctrl->map_ch[3]<0.05f) rc_ctrl->map_ch[3]=0; + return 1; + } /*dr16数据解析+校验 */ static bool DR16_DataCorrupted(const DR16_t *dr16) { @@ -207,4 +208,4 @@ int8_t DR16_HandleOffline(const DR16_t *dr16, CMD_RC_t *rc) { (void)dr16; memset(rc, 0, sizeof(*rc)); return 0; -} \ No newline at end of file +} diff --git a/User/device/dr16.h b/User/device/rc.h similarity index 92% rename from User/device/dr16.h rename to User/device/rc.h index 037c81f..f39fe24 100644 --- a/User/device/dr16.h +++ b/User/device/rc.h @@ -1,9 +1,9 @@ -#ifndef DR16_h -#define DR16_h +#ifndef RC_h +#define RC_h /* Includes ----------------------------------------------------------------- */ #include - +#include "bsp_usart.h" #include "cmd.h" #include "user_math.h" #include "device.h" @@ -34,9 +34,9 @@ typedef struct { -#define SBUS_RX_BUF_NUM 25u +//#define SBUS_RX_BUF_NUM 25u -#define RC_FRAME_LENGTH 18u +//#define RC_FRAME_LENGTH 18u diff --git a/User/device/remote_control.c b/User/device/remote_control.c deleted file mode 100644 index aa5e3ed..0000000 --- a/User/device/remote_control.c +++ /dev/null @@ -1,185 +0,0 @@ -/** - ****************************(C) COPYRIGHT 2019 DJI**************************** - * @file remote_control.c/h - * @brief ңңͨSBUSЭ鴫䣬DMA䷽ʽԼCPU - * ԴôڿжͬʱṩһЩDMA - * ķʽ֤Ȳεȶԡ - * @note ͨжfreeRTOS - * @history - * Version Date Author Modification - * V1.0.0 Dec-01-2019 RM 1. - * - @verbatim - ============================================================================== - - ============================================================================== - @endverbatim - ****************************(C) COPYRIGHT 2019 DJI**************************** - */ - -#include "remote_control.h" -#include "main.h" - - -extern UART_HandleTypeDef huart3; -extern DMA_HandleTypeDef hdma_usart3_rx; - -static void sbus_to_rc(volatile const uint8_t *sbus_buf, RC_ctrl_t *rc_ctrl); - -RC_ctrl_t rc_ctrl; -static uint8_t sbus_rx_buf[2][RC_FRAME_LENGTH]; -uint8_t remote_ready = 0;//ң׼ - -void remote_control_init(void) -{ - RC_init(sbus_rx_buf[0], sbus_rx_buf[1], RC_FRAME_LENGTH); -} - - -//ж -void USART3_IRQHandler(void) -{ - //have received data ??? - if(huart3.Instance->SR & UART_FLAG_RXNE) - { - __HAL_UART_CLEAR_FEFLAG(&huart3); - } - else if(USART3->SR & UART_FLAG_IDLE) - { - - static uint16_t this_time_rx_len = 0; - __HAL_UART_CLEAR_PEFLAG(&huart3); - - if( (hdma_usart3_rx.Instance->CR & DMA_SxCR_CT) == RESET) - { - //current memory buffer used is memory0 - - //disable dma to change dma register - __HAL_DMA_DISABLE(&hdma_usart3_rx); - - //get received data length, length = set_data_length - remain_length - this_time_rx_len = SBUS_RX_BUF_NUM - hdma_usart3_rx.Instance->NDTR; - - //reset set_data_length - hdma_usart3_rx.Instance->NDTR = SBUS_RX_BUF_NUM; - - //change memory0 to memory1 - hdma_usart3_rx.Instance->CR |= DMA_SxCR_CT; - - //enable dma - __HAL_DMA_ENABLE(&hdma_usart3_rx); - - //1 frame length is correct data - if(this_time_rx_len == RC_FRAME_LENGTH) - { - sbus_to_rc(sbus_rx_buf[0], &rc_ctrl); - } - } - else - { - __HAL_DMA_DISABLE(&hdma_usart3_rx); - - this_time_rx_len = SBUS_RX_BUF_NUM - hdma_usart3_rx.Instance->NDTR; - - hdma_usart3_rx.Instance->NDTR = SBUS_RX_BUF_NUM; - - //change memory1 to memory0 - DMA1_Stream1->CR &= ~(DMA_SxCR_CT); - - __HAL_DMA_ENABLE(&hdma_usart3_rx); - - if(this_time_rx_len == RC_FRAME_LENGTH) - { - sbus_to_rc(sbus_rx_buf[1], &rc_ctrl); - } - } - } -} - -static void sbus_to_rc(volatile const uint8_t *sbus_buf, RC_ctrl_t *rc_ctrl) -{ - if (sbus_buf == NULL || rc_ctrl == NULL) - { - return; - } - - rc_ctrl->ch[1] = (sbus_buf[1] | (sbus_buf[2] << 8)) & 0x07ff; //Channel 1 - rc_ctrl->ch[2] = ((sbus_buf[2] >> 3) | (sbus_buf[3] << 5)) & 0x07ff; //Channel 2 - rc_ctrl->ch[0] = ((sbus_buf[3] >> 6) | (sbus_buf[4] << 2) | //Channel 3 - (sbus_buf[5] << 10)) &0x07ff; - rc_ctrl->ch[3] = ((sbus_buf[5] >> 1) | (sbus_buf[6] << 7)) & 0x07ff; //Channel 4 - - rc_ctrl->sw[0] = ((int16_t)sbus_buf[6] >> 4 | ((int16_t)sbus_buf[7] << 4 )) & 0x07FF; //Channel 5 - rc_ctrl->sw[1] = ((int16_t)sbus_buf[7] >> 7 | ((int16_t)sbus_buf[8] << 1 ) | (int16_t)sbus_buf[9] << 9 ) & 0x07FF; //Channel 6 - rc_ctrl->sw[2] = ((int16_t)sbus_buf[9] >> 2 | ((int16_t)sbus_buf[10] << 6 )) & 0x07FF;; //Channel 7 - rc_ctrl->sw[3] = ((int16_t)sbus_buf[10] >> 5 | ((int16_t)sbus_buf[11] << 3 )) & 0x07FF; //Channel 8 - rc_ctrl->sw[4] = ((int16_t)sbus_buf[12] << 0 | ((int16_t)sbus_buf[13] << 8 )) & 0x07FF; //Channel 9 - rc_ctrl->sw[5] = ((int16_t)sbus_buf[13] >> 3 | ((int16_t)sbus_buf[14] << 5 )) & 0x07FF; //Channel 10 - rc_ctrl->sw[6] = ((int16_t)sbus_buf[14] >> 6 | ((int16_t)sbus_buf[15] << 2 ) | (int16_t)sbus_buf[16] << 10 ) & 0x07FF; //Channel 11 - rc_ctrl->sw[7] = ((int16_t)sbus_buf[16] >> 1 | ((int16_t)sbus_buf[17] << 7 )) & 0x07FF; //Channel 12 - - rc_ctrl->ch[0] -= RC_CH_VALUE_OFFSET; - rc_ctrl->ch[1] -= RC_CH_VALUE_OFFSET; - rc_ctrl->ch[2] -= RC_CH_VALUE_OFFSET; - rc_ctrl->ch[3] -= RC_CH_VALUE_OFFSET; - - -// //ң - rc_ctrl->ch[0] += 20; //y(-694,693) - rc_ctrl->ch[1] += 20; //x(-693,694) - rc_ctrl->ch[2] = -rc_ctrl->ch[2]+144; //m(-518,843) - rc_ctrl->ch[3] += 4; //w(-694,693) - - rc_ctrl->sw[2] = map(rc_ctrl->sw[2],306,1694,1694,306); - rc_ctrl->sw[3] = map(rc_ctrl->sw[3],306,1694,1694,306); -// rc_ctrl->ch[1] = map(rc_ctrl->ch[1],656,-656,-700,700); //x - rc_ctrl->ch[0] = map(rc_ctrl->ch[0],-800,796,700,-700); //y - rc_ctrl->ch[2] = map(rc_ctrl->ch[2],-632,901,25,0); //m - rc_ctrl->ch[3] = map(rc_ctrl->ch[3],-820,780,-700,700); - rc_ctrl->ch[3] = 0.5*(rc_ctrl->ch[3]); - rc_ctrl->ch[1] = 0.5*(rc_ctrl->ch[1]); - rc_ctrl->ch[0] = 0.5*(rc_ctrl->ch[0]); -// - //(-30,30) - if(rc_ctrl->ch[0]>-14&&rc_ctrl->ch[0]<10) rc_ctrl->ch[0]=0; - if(rc_ctrl->ch[1]>-30&&rc_ctrl->ch[1]<20) rc_ctrl->ch[1]=0; - if(rc_ctrl->ch[2]>=0&&rc_ctrl->ch[2]<=3) rc_ctrl->ch[2]=0; - if(rc_ctrl->ch[3]>-22&&rc_ctrl->ch[3]<22) rc_ctrl->ch[3]=0; - - remote_ready = 1; -} - - - -int map(int x, int in_min, int in_max, int out_min, int out_max) //ӳ亯 -{ - return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min; -} - - -/* - - - - -306 306 - sw[] sw[7] -1694 1694 - -306 306 -sw[6] sw[4] -1694 1694 - -306 306 306 306 -sw[0] sw[2] sw[1]:306-1694 sw[5]:306-1694 sw[]1000 sw[3] -1694 1694 1694 1694 - 710 - 688 1425 - | | - | | - 54 -616------ch[3]770 -354---------ch[0] 339 0 - | | - | | - ch[2] ch[1] - _699 38 -*/ diff --git a/User/device/remote_control.h b/User/device/remote_control.h deleted file mode 100644 index 5971266..0000000 --- a/User/device/remote_control.h +++ /dev/null @@ -1,42 +0,0 @@ -/** - ****************************(C) COPYRIGHT 2016 DJI**************************** - * @file remote_control.c/h - * @brief ңңͨSBUSЭ鴫䣬DMA䷽ʽԼCPU - * ԴôڿжͬʱṩһЩDMA - * ķʽ֤Ȳεȶԡ - * @note - * @history - * Version Date Author Modification - * V1.0.0 Dec-26-2018 RM 1. - * - @verbatim - ============================================================================== - - ============================================================================== - @endverbatim - ****************************(C) COPYRIGHT 2016 DJI**************************** - */ -#ifndef REMOTE_CONTROL_H -#define REMOTE_CONTROL_H -#include "struct_typedef.h" -#include "bsp_rc.h" - -#define SBUS_RX_BUF_NUM 50u - -#define RC_FRAME_LENGTH 25u - -#define RC_CH_VALUE_OFFSET ((uint16_t)1024) - -typedef struct -{ - int16_t ch[4]; - int16_t sw[8]; - -}__attribute__((packed)) RC_ctrl_t; - -extern void remote_control_init(void); -static void sbus_to_rc(volatile const uint8_t *sbus_buf, RC_ctrl_t *rc_ctrl); -int map(int x, int in_min, int in_max, int out_min, int out_max); //ӳ亯 - - -#endif diff --git a/User/task/error_detect_task.c b/User/task/error_detect_task.c index f8e8992..8ace272 100644 --- a/User/task/error_detect_task.c +++ b/User/task/error_detect_task.c @@ -51,7 +51,6 @@ */ #include "error_detect.h" #include "user_task.h" -#include "r12ds.h" #include "nuc.h" /** * @brief init error_list, assign offline_time, online_time, priority. diff --git a/User/task/init.c b/User/task/init.c index 7300d1a..e63b787 100644 --- a/User/task/init.c +++ b/User/task/init.c @@ -35,10 +35,8 @@ void Task_Init(void *argument) { osThreadNew(Task_AttiEsti, NULL, &attr_atti_esti); task_runtime.thread.chassis = osThreadNew(Task_Chassis, NULL, &attr_chassis); -// task_runtime.thread.r12ds = -// osThreadNew(Task_r12ds,NULL,&attr_r12ds); - task_runtime.thread.dr16 = - osThreadNew(Task_dr16,NULL,&attr_dr16); + task_runtime.thread.rc = + osThreadNew(Task_rc,NULL,&attr_rc); task_runtime.thread.can = osThreadNew(Task_can,NULL,&attr_can); diff --git a/User/task/r12ds_task.c b/User/task/r12ds_task.c deleted file mode 100644 index 3e5aa3a..0000000 --- a/User/task/r12ds_task.c +++ /dev/null @@ -1,82 +0,0 @@ -#include "r12ds.h" -#include "cmsis_os.h" -#include "user_task.h" -#include - - -#ifdef r12ds_t - -#ifdef DEBUG - -CMD_RC_t cmd_rc; - -uint8_t sbus_rx_buf[2][RC_FRAME_LENGTH]; - -#else - -static CMD_RC_t cmd_rc; - -#endif - - - -CMD_RC_t *R12ds_DataGet(){ - return &cmd_rc; -} - - -void R12ds_HandleOffline(void) { - CMD_RC_t *rc; - rc = R12ds_DataGet(); - memset(rc, 0, sizeof(rc->ch_x) + sizeof(rc->mul) + sizeof(rc->ch_y) + sizeof(rc->ch_w) + sizeof(rc->key)); -} - -#endif - -void Task_r12ds(void *argument) -{ - (void)argument; - - - const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_R12DS; -#ifdef r12ds_t - - R12ds_DMA_Init(sbus_rx_buf[0],sbus_rx_buf[1],50); -#endif - - uint32_t tick = osKernelGetTickCount(); - - - while (1) - { - -#ifdef r12ds_t - -#ifdef DEBUG - - task_runtime.stack_water_mark.r12ds = - osThreadGetStackSpace(osThreadGetId()); - -#endif - - sbus_to_rc(sbus_rx_buf[0],&cmd_rc); - - if(cmd_rc.offline ==1) - { - R12ds_HandleOffline(); - } - - osMessageQueueReset(task_runtime.msgq.cmd.raw.rc); - osMessageQueuePut(task_runtime.msgq.cmd.raw.rc,(&cmd_rc),0,0); -#endif - - tick += delay_tick; /* 计算下一个唤醒时*/ - - osDelay(10); - - } - - - - - } diff --git a/User/task/r12ds_task.h b/User/task/r12ds_task.h deleted file mode 100644 index ebf5d49..0000000 --- a/User/task/r12ds_task.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef _R12DS_TASK_H -#define _R12DS_TASK_H - - - - - - - - - - - - - -#endif \ No newline at end of file diff --git a/User/task/dr16_task.c b/User/task/rc_task.c similarity index 88% rename from User/task/dr16_task.c rename to User/task/rc_task.c index 7ad1e7e..5584765 100644 --- a/User/task/dr16_task.c +++ b/User/task/rc_task.c @@ -5,7 +5,7 @@ /* Includes ----------------------------------------------------------------- */ #include -#include "dr16.h" +#include "rc.h" #include "user_task.h" /* Private typedef ---------------------------------------------------------- */ @@ -31,15 +31,15 @@ static CMD_RC_t cmd_rc; * * \param argument 未使用 */ -void Task_dr16(void *argument) { +void Task_rc(void *argument) { (void)argument; /* 未使用,消除警告 */ - RC_SBUS_Init(); /* 初始化dr16 */ + RC_SBUS_Init(); /* 初始化 */ while (1) { #ifdef DEBUG /* */ - task_runtime.stack_water_mark.dr16 = osThreadGetStackSpace(osThreadGetId()); + task_runtime.stack_water_mark.rc = osThreadGetStackSpace(osThreadGetId()); #endif /* 开启DMA */ RC_SBUS_StartDmaRecv(); diff --git a/User/task/user_task.c b/User/task/user_task.c index 569ce05..8c37e77 100644 --- a/User/task/user_task.c +++ b/User/task/user_task.c @@ -58,7 +58,7 @@ const osThreadAttr_t attr_error_detect = { .stack_size = 128 *4, }; -const osThreadAttr_t attr_dr16 = { +const osThreadAttr_t attr_rc = { .name = "dr16", .priority = osPriorityRealtime, .stack_size = 128 *4, diff --git a/User/task/user_task.h b/User/task/user_task.h index 02fdf1a..2108081 100644 --- a/User/task/user_task.h +++ b/User/task/user_task.h @@ -21,7 +21,7 @@ #define TASK_FREQ_NUC (500u) #define TASK_FREQ_CAN (1000u) #define TASK_FREQ_R12DS (1000u) -#define TASK_FREQ_DR16 (1000u) +#define TASK_FREQ_RC (1000u) #define TASK_FREQ_ERROR_DTC (3u) @@ -40,8 +40,7 @@ typedef struct { osThreadId_t chassis; osThreadId_t up; - osThreadId_t dr16; - osThreadId_t r12ds; + osThreadId_t rc; osThreadId_t can; osThreadId_t cmd; osThreadId_t nuc; @@ -111,8 +110,7 @@ typedef struct { UBaseType_t can; UBaseType_t atti_esti; - UBaseType_t dr16; - UBaseType_t r12ds; + UBaseType_t rc; UBaseType_t cmd; UBaseType_t nuc; @@ -124,8 +122,7 @@ typedef struct { float chassis; float can; float atti_esti; - float r12ds; - float dr16; + float rc; float up; float cmd; @@ -137,8 +134,7 @@ typedef struct { float chassis; float can; float atti_esti; - float r12ds; - float dr16; + float rc; float up; float cmd; @@ -166,7 +162,7 @@ extern const osThreadAttr_t attr_nuc; extern const osThreadAttr_t attr_error_detect; -extern const osThreadAttr_t attr_dr16; +extern const osThreadAttr_t attr_rc; //extern const osThreadAttr_t attr_r12ds; @@ -179,17 +175,13 @@ void Task_Chassis(void *argument); void Task_up(void *argument); - void Task_can(void *argument); void Task_cmd(void *argument); void Task_nuc(void *argument); - void Task_error_detect(void *argument); -void Task_r12ds(void *argument); - -void Task_dr16(void *argument); +void Task_rc(void *argument); #endif