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] . --- 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