diff --git a/MDK-ARM/IMU.uvoptx b/MDK-ARM/IMU.uvoptx deleted file mode 100644 index 2dfa5e6..0000000 --- a/MDK-ARM/IMU.uvoptx +++ /dev/null @@ -1,736 +0,0 @@ - - - - 1.0 - -
### uVision Project, (C) Keil Software
- - - *.c - *.s*; *.src; *.a* - *.obj; *.o - *.lib - *.txt; *.h; *.inc - *.plm - *.cpp - 0 - - - - 0 - 0 - - - - IMU - 0x4 - ARM-ADS - - 12000000 - - 1 - 1 - 0 - 1 - 0 - - - 1 - 65535 - 0 - 0 - 0 - - - 79 - 66 - 8 - - - - 1 - 1 - 1 - 0 - 1 - 1 - 0 - 1 - 0 - 0 - 0 - 0 - - - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 0 - - - 1 - 0 - 1 - - 18 - - 0 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 0 - 0 - 1 - 0 - 0 - 6 - - - - - - - - - - - STLink\ST-LINKIII-KEIL_SWO.dll - - - - 0 - UL2CM3 - UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM)) - - - 0 - ST-LINKIII-KEIL_SWO - -U-O142 -O2254 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM) - - - - - 0 - - - 0 - 1 - 1 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - - - - 0 - 0 - 0 - - - - - - - - - - 1 - 1 - 0 - 2 - 10000000 - - - - - - Application/MDK-ARM - 0 - 0 - 0 - 0 - - 1 - 1 - 2 - 0 - 0 - 0 - startup_stm32f407xx.s - startup_stm32f407xx.s - 0 - 0 - - - - - Application/User/Core - 1 - 0 - 0 - 0 - - 2 - 2 - 1 - 0 - 0 - 0 - ../Core/Src/main.c - main.c - 0 - 0 - - - 2 - 3 - 1 - 0 - 0 - 0 - ../Core/Src/gpio.c - gpio.c - 0 - 0 - - - 2 - 4 - 1 - 0 - 0 - 0 - ../Core/Src/freertos.c - freertos.c - 0 - 0 - - - 2 - 5 - 1 - 0 - 0 - 0 - ../Core/Src/can.c - can.c - 0 - 0 - - - 2 - 6 - 1 - 0 - 0 - 0 - ../Core/Src/crc.c - crc.c - 0 - 0 - - - 2 - 7 - 1 - 0 - 0 - 0 - ../Core/Src/dma.c - dma.c - 0 - 0 - - - 2 - 8 - 1 - 0 - 0 - 0 - ../Core/Src/spi.c - spi.c - 0 - 0 - - - 2 - 9 - 1 - 0 - 0 - 0 - ../Core/Src/tim.c - tim.c - 0 - 0 - - - 2 - 10 - 1 - 0 - 0 - 0 - ../Core/Src/usart.c - usart.c - 0 - 0 - - - 2 - 11 - 1 - 0 - 0 - 0 - ../Core/Src/stm32f4xx_it.c - stm32f4xx_it.c - 0 - 0 - - - 2 - 12 - 1 - 0 - 0 - 0 - ../Core/Src/stm32f4xx_hal_msp.c - stm32f4xx_hal_msp.c - 0 - 0 - - - - - Drivers/STM32F4xx_HAL_Driver - 1 - 0 - 0 - 0 - - 3 - 13 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c - stm32f4xx_hal_can.c - 0 - 0 - - - 3 - 14 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c - stm32f4xx_hal_rcc.c - 0 - 0 - - - 3 - 15 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c - stm32f4xx_hal_rcc_ex.c - 0 - 0 - - - 3 - 16 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c - stm32f4xx_hal_flash.c - 0 - 0 - - - 3 - 17 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c - stm32f4xx_hal_flash_ex.c - 0 - 0 - - - 3 - 18 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c - stm32f4xx_hal_flash_ramfunc.c - 0 - 0 - - - 3 - 19 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c - stm32f4xx_hal_gpio.c - 0 - 0 - - - 3 - 20 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c - stm32f4xx_hal_dma_ex.c - 0 - 0 - - - 3 - 21 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c - stm32f4xx_hal_dma.c - 0 - 0 - - - 3 - 22 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c - stm32f4xx_hal_pwr.c - 0 - 0 - - - 3 - 23 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c - stm32f4xx_hal_pwr_ex.c - 0 - 0 - - - 3 - 24 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c - stm32f4xx_hal_cortex.c - 0 - 0 - - - 3 - 25 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c - stm32f4xx_hal.c - 0 - 0 - - - 3 - 26 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c - stm32f4xx_hal_exti.c - 0 - 0 - - - 3 - 27 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c - stm32f4xx_hal_crc.c - 0 - 0 - - - 3 - 28 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c - stm32f4xx_hal_spi.c - 0 - 0 - - - 3 - 29 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c - stm32f4xx_hal_tim.c - 0 - 0 - - - 3 - 30 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c - stm32f4xx_hal_tim_ex.c - 0 - 0 - - - 3 - 31 - 1 - 0 - 0 - 0 - ../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c - stm32f4xx_hal_uart.c - 0 - 0 - - - - - Drivers/CMSIS - 1 - 0 - 0 - 0 - - 4 - 32 - 1 - 0 - 0 - 0 - ../Core/Src/system_stm32f4xx.c - system_stm32f4xx.c - 0 - 0 - - - - - Middlewares/FreeRTOS - 0 - 0 - 0 - 0 - - 5 - 33 - 1 - 0 - 0 - 0 - ../Middlewares/Third_Party/FreeRTOS/Source/croutine.c - croutine.c - 0 - 0 - - - 5 - 34 - 1 - 0 - 0 - 0 - ../Middlewares/Third_Party/FreeRTOS/Source/event_groups.c - event_groups.c - 0 - 0 - - - 5 - 35 - 1 - 0 - 0 - 0 - ../Middlewares/Third_Party/FreeRTOS/Source/list.c - list.c - 0 - 0 - - - 5 - 36 - 1 - 0 - 0 - 0 - ../Middlewares/Third_Party/FreeRTOS/Source/queue.c - queue.c - 0 - 0 - - - 5 - 37 - 1 - 0 - 0 - 0 - ../Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.c - stream_buffer.c - 0 - 0 - - - 5 - 38 - 1 - 0 - 0 - 0 - ../Middlewares/Third_Party/FreeRTOS/Source/tasks.c - tasks.c - 0 - 0 - - - 5 - 39 - 1 - 0 - 0 - 0 - ../Middlewares/Third_Party/FreeRTOS/Source/timers.c - timers.c - 0 - 0 - - - 5 - 40 - 1 - 0 - 0 - 0 - ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.c - cmsis_os2.c - 0 - 0 - - - 5 - 41 - 1 - 0 - 0 - 0 - ../Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.c - heap_4.c - 0 - 0 - - - 5 - 42 - 1 - 0 - 0 - 0 - ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c - port.c - 0 - 0 - - - - - ::CMSIS - 0 - 0 - 0 - 1 - - -
diff --git a/MDK-ARM/AUTO_CHASSIS.uvoptx b/MDK-ARM/R2_CHASSIS.uvoptx similarity index 93% rename from MDK-ARM/AUTO_CHASSIS.uvoptx rename to MDK-ARM/R2_CHASSIS.uvoptx index 9f552dc..6ee7e78 100644 --- a/MDK-ARM/AUTO_CHASSIS.uvoptx +++ b/MDK-ARM/R2_CHASSIS.uvoptx @@ -12,7 +12,7 @@ *.lib *.txt; *.h; *.inc; *.md *.plm - *.cpp + *.cpp; *.cc; *.cxx 0 @@ -22,11 +22,11 @@ - AUTO_CHASSIS + R2_CHASSIS 0x4 ARM-ADS - 12000000 + 25000000 1 1 @@ -103,7 +103,7 @@ 1 0 0 - 3 + 0 @@ -114,39 +114,9 @@ - BIN\CMSIS_AGDI.dll + BIN\UL2CM3.DLL - - 0 - ST-LINKIII-KEIL_SWO - -U00160029510000164E574E32 -O206 -SF5000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO131091 -TC12000000 -TT12000000 -TP21 -TDS8005 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM) - - - 0 - ARMRTXEVENTFLAGS - -L70 -Z18 -C0 -M0 -T1 - - - 0 - DLGTARM - (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0) - - - 0 - ARMDBGFLAGS - - - - 0 - CMSIS_AGDI - -X"Horco CMSIS-DAP" -U8626380832 -O206 -S0 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO65554 -TC168000000 -TT168000000 -TP20 -TDS8010 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM) - - - 0 - DLGUARM - - 0 UL2CM3 @@ -154,57 +124,18 @@ - - - 0 - 1 - CAN_data,0x0A - - - 1 - 1 - aaaaaaa,0x0A - - - 2 - 1 - cmd_rc,0x0A - - - 3 - 1 - cmd,0x0A - - - 4 - 1 - rc_ctrl,0x0A - - - 5 - 1 - buf0ready,0x0A - - - - - 0 - 2 - a - - 0 0 - 1 - 1 + 0 + 0 0 0 0 0 - 1 + 0 0 0 0 @@ -236,18 +167,18 @@ - 0 - 0 + 1 + 1 0 2 - 5000000 + 10000000 Application/MDK-ARM - 1 + 0 0 0 0 @@ -279,7 +210,7 @@ Application/User/Core - 1 + 0 0 0 0 @@ -711,7 +642,7 @@ Middlewares/FreeRTOS - 1 + 0 0 0 0 @@ -839,7 +770,7 @@ User/Module - 1 + 0 0 0 0 @@ -871,7 +802,7 @@ User/bsp - 1 + 0 0 0 0 @@ -1035,7 +966,7 @@ User/Task - 1 + 0 0 0 0 @@ -1163,7 +1094,7 @@ User/Algorithm - 1 + 0 0 0 0 @@ -1243,7 +1174,7 @@ User/Device - 1 + 0 0 0 0 @@ -1335,7 +1266,7 @@ Application/User/USB_DEVICE/App - 1 + 0 0 0 0 @@ -1379,7 +1310,7 @@ Application/User/USB_DEVICE/Target - 1 + 0 0 0 0 @@ -1399,7 +1330,7 @@ Middlewares/USB_Device_Library - 1 + 0 0 0 0 diff --git a/MDK-ARM/AUTO_CHASSIS.uvprojx b/MDK-ARM/R2_CHASSIS.uvprojx similarity index 99% rename from MDK-ARM/AUTO_CHASSIS.uvprojx rename to MDK-ARM/R2_CHASSIS.uvprojx index 77e8f73..f2d74fc 100644 --- a/MDK-ARM/AUTO_CHASSIS.uvprojx +++ b/MDK-ARM/R2_CHASSIS.uvprojx @@ -7,10 +7,9 @@ - AUTO_CHASSIS + R2_CHASSIS 0x4 ARM-ADS - 5060960::V5.06 update 7 (build 960)::.\ARMCC 5060960::V5.06 update 7 (build 960)::.\ARMCC 0 @@ -49,8 +48,8 @@ 0 1 - ELE_CHASSIS\ - AUTO_CHASSIS + .\R2_CHASSIS\ + R2_CHASSIS 1 0 0 @@ -82,7 +81,7 @@ 0 - 1 + 0 0 @@ -1993,7 +1992,7 @@ - + diff --git a/MDK-ARM/ELE_CHASSIS/AUTO_CHASSIS.hex b/MDK-ARM/R2_CHASSIS/AUTO_CHASSIS.hex similarity index 100% rename from MDK-ARM/ELE_CHASSIS/AUTO_CHASSIS.hex rename to MDK-ARM/R2_CHASSIS/AUTO_CHASSIS.hex diff --git a/MDK-ARM/ELE_CHASSIS/ELE_CHASSIS.hex b/MDK-ARM/R2_CHASSIS/ELE_CHASSIS.hex similarity index 100% rename from MDK-ARM/ELE_CHASSIS/ELE_CHASSIS.hex rename to MDK-ARM/R2_CHASSIS/ELE_CHASSIS.hex diff --git a/MDK-ARM/ELE_CHASSIS/AUTO_CHASSIS.axf b/MDK-ARM/R2_CHASSIS/R2_CHASSIS.axf similarity index 84% rename from MDK-ARM/ELE_CHASSIS/AUTO_CHASSIS.axf rename to MDK-ARM/R2_CHASSIS/R2_CHASSIS.axf index 516a8b7..5d09abd 100644 Binary files a/MDK-ARM/ELE_CHASSIS/AUTO_CHASSIS.axf and b/MDK-ARM/R2_CHASSIS/R2_CHASSIS.axf differ diff --git a/User/Module/Chassis.c b/User/Module/Chassis.c index 03246ce..d2f5a2f 100644 --- a/User/Module/Chassis.c +++ b/User/Module/Chassis.c @@ -51,11 +51,11 @@ int8_t Chassis_UpdateFeedback(Chassis_t *c, const CAN_t *can) { c->motorfeedback.rotor_gimbal_pitchangle = can->motor.chassis6020.as_array[1].rotor_angle; c->motorfeedback.rotor_gimbal_pitchrpm = can->motor.chassis6020.as_array[1].rotor_speed; - c->sick_dis[0] = can->sickfed.raw_dis[0]; - c->sick_dis[1] = can->sickfed.raw_dis[1]; - c->sick_dis[2] = can->sickfed.raw_dis[2]; - c->sick_dis[3] = can->sickfed.raw_dis[3]; - +// c->sick_dis[0] = can->sickfed.raw_dis[0]; +// c->sick_dis[1] = can->sickfed.raw_dis[1]; +// c->sick_dis[2] = can->sickfed.raw_dis[2]; +// c->sick_dis[3] = can->sickfed.raw_dis[3]; + return CHASSIS_OK; } @@ -156,7 +156,7 @@ int8_t Chassis_Control(Chassis_t *c,CMD_t *ctrl,CAN_Output_t *out) break; - case MID_NAVI: + case MID_NAVI: //雷达 // //这套是全向轮的方向,一定要注意这里的xy方向 c->move_vec.Vw =ctrl->C_navi.wz ; c->move_vec.Vx =ctrl->C_navi.vy ; @@ -178,22 +178,19 @@ int8_t Chassis_Control(Chassis_t *c,CMD_t *ctrl,CAN_Output_t *out) } break; + + + case PICK: + c->move_vec.Vw =ctrl->C_navi.wz ; + c->move_vec.Vx =ctrl->C_navi.vy ; + c->move_vec.Vy =ctrl->C_navi.vx ; + + + + break ; + - } -/*怎么用*/ - switch (c->mode) - { - case RELAXED: - c->move_vec.Vx =0; - c->move_vec.Vy =0; - c->move_vec.Vw =0; - break; - case NORMAL: - break; - case GYRO_STAY://陀螺仪yaw修正 - c->move_vec.Vw = c->move_vec.Vw +c->pos088.bmi088.gyro.z *2000; - break; } diff --git a/User/bsp/bsp_usart.c b/User/bsp/bsp_usart.c index 02039eb..b22edd5 100644 --- a/User/bsp/bsp_usart.c +++ b/User/bsp/bsp_usart.c @@ -9,7 +9,7 @@ static BSP_UART_t UART_Get(UART_HandleTypeDef *huart) { if (huart->Instance == USART3) return BSP_UART_REMOTE; else if (huart->Instance == USART1) - return BSP_UART_ACTION; + return BSP_UART_NUC; else if (huart->Instance == USART6) return BSP_UART_NUC; /* diff --git a/User/device/cmd.c b/User/device/cmd.c index 973711c..db1937d 100644 --- a/User/device/cmd.c +++ b/User/device/cmd.c @@ -95,15 +95,14 @@ static void CMD_RcLostLogic(CMD_t *cmd){ int8_t CMD_ParseRc(CMD_t *cmd,CMD_RC_t *rc){ if (cmd == NULL) return -1; if (rc == NULL) return -1; -//#ifdef dr16_t +#ifdef dr16_t /*c当rc丢控时,恢复机器人至默认状态 */ -// if ((rc->ch_w == CMD_SW_ERR) || (rc->ch_y == CMD_SW_ERR)) { -// CMD_RcLostLogic(cmd); -// } else { + if ((rc->sw_l == CMD_SW_ERR) || (rc->sw_r == CMD_SW_ERR)) { + CMD_RcLostLogic(cmd); + } else { CMD_RcLogic(rc, cmd); -// } - -//#endif + } +#endif return 0; } @@ -128,6 +127,13 @@ int8_t CMD_ParseNuc(CMD_t *cmd,CMD_NUC_t *n){ cmd->C_navi.wz = n->navi.wz; break; + case PICK : + cmd ->C_pick .posx =n->pick .posx ; + cmd ->C_pick .posy =n->pick .posy ; + cmd ->C_pick .posw =n->pick .posw ; + + break; + } return 0; diff --git a/User/device/cmd.h b/User/device/cmd.h index dd0a713..bfbefca 100644 --- a/User/device/cmd.h +++ b/User/device/cmd.h @@ -23,11 +23,16 @@ #define MID (0x09) +#define PICK (0x06) -/*选择遥控器,else为r12ds*/ -//#define dr16_t -#define r12ds_t +/*选择遥控器,else为r12ds +更改遥控器时,建议取消相应的task + + +*/ +#define dr16_t +//#define r12ds_t @@ -35,6 +40,7 @@ typedef enum{ RC,//遥控器控制,左按键上 MID_NAVI,//雷达导航 + PICK_t, }CMD_Chassis_CtrlType_e; typedef enum{ @@ -91,6 +97,7 @@ typedef struct { uint16_t key; /* 按键值 */ uint16_t res; /* 保留,未启用 */ + #else int16_t ch_x; // X轴(Channel 1) @@ -115,11 +122,17 @@ typedef struct { fp32 vy; fp32 wz; }navi; - + struct + { + fp32 posx; + fp32 posy; + fp32 posw; + }pick; struct { fp32 angle; }sick_cali; + } CMD_NUC_t; typedef struct{ @@ -156,7 +169,7 @@ typedef struct { CMD_Chassis_Ctrl_t C_cmd; CMD_FOR_NAVI C_navi; - + CMD_FOR_PICK C_pick; } CMD_t; diff --git a/User/device/dr16.c b/User/device/dr16.c index a632fc3..8c8dc81 100644 --- a/User/device/dr16.c +++ b/User/device/dr16.c @@ -13,7 +13,7 @@ #ifdef dr16_t - +//#define /* Private define ----------------------------------------------------------- */ #define DR16_CH_VALUE_MIN (364u) #define DR16_CH_VALUE_MID (1024u) @@ -106,7 +106,6 @@ int8_t DR16_ParseRC(const DR16_t *dr16, CMD_RC_t *rc) { } else { memset(rc, 0, sizeof(*rc)); } - rc->RC_type = RC_dr16; 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; diff --git a/User/device/nuc.c b/User/device/nuc.c index cd5dc4a..d05906f 100644 --- a/User/device/nuc.c +++ b/User/device/nuc.c @@ -36,6 +36,8 @@ bool_t NUC_WaitDmaCplt(void) { return (osThreadFlagsWait(SIGNAL_NUC_RAW_REDY, osFlagsWaitAll,500) == SIGNAL_NUC_RAW_REDY); } + + int8_t NUC_RawParse(CMD_NUC_t *n){ if(n ==NULL) return DEVICE_ERR_NULL; union @@ -76,34 +78,34 @@ int8_t NUC_RawParse(CMD_NUC_t *n){ instance.data[8] = nucbuf[11]; n->navi.wz = instance.x[2];// break; -// case PICK: -// /* 协议格式 -// 0xFF HEAD -// 0x0X 控制帧 -// 0x01 相机帧 -// cmd 8位 -// dis 相机深度值 -// posx 相机yaw轴值 -// posy 相机pitch轴值 -// 0xFE TAIL -// */ + case PICK: + /* 协议格式 + 0xFF HEAD + 0x0X 控制帧 + 0x01 相机帧 + cmd 8位 + dis 相机深度值 + posx 相机yaw轴值 + posy 相机pitch轴值 + 0xFE TAIL + */ // if(nucbuf[15]!=TAIL)goto error; -// instance.data[3] = nucbuf[6]; -// instance.data[2] = nucbuf[5]; -// instance.data[1] = nucbuf[4]; -// instance.data[0] = nucbuf[3]; -// n->pick.posx = instance.x[0]; //距离球中心的角度值 -// instance.data[7] = nucbuf[10]; -// instance.data[6] = nucbuf[9]; -// instance.data[5] = nucbuf[8]; -// instance.data[4] = nucbuf[7]; -// n->pick.posy = instance.x[1];// 相机yaw轴 -// instance.data[11] = nucbuf[14]; -// instance.data[10] = nucbuf[13]; -// instance.data[9] = nucbuf[12]; -// instance.data[8] = nucbuf[11]; -// n->pick.posw= instance.x[2];// 暂未用到 -// break; + instance.data[3] = nucbuf[6]; + instance.data[2] = nucbuf[5]; + instance.data[1] = nucbuf[4]; + instance.data[0] = nucbuf[3]; + n->pick.posx = instance.x[0]; //距离球中心的角度值 + instance.data[7] = nucbuf[10]; + instance.data[6] = nucbuf[9]; + instance.data[5] = nucbuf[8]; + instance.data[4] = nucbuf[7]; + n->pick.posy = instance.x[1];// 相机yaw轴 + instance.data[11] = nucbuf[14]; + instance.data[10] = nucbuf[13]; + instance.data[9] = nucbuf[12]; + instance.data[8] = nucbuf[11]; + n->pick.posw= instance.x[2];// 暂未用到 + break; // case SICK_CAIL: // if(nucbuf[15]!=TAIL)goto error; // instance.data[3] = nucbuf[14]; diff --git a/User/task/dr16_task.c b/User/task/dr16_task.c index 6e4e59a..58d1662 100644 --- a/User/task/dr16_task.c +++ b/User/task/dr16_task.c @@ -13,7 +13,7 @@ /* Private macro ------------------------------------------------------------ */ /* Private variables -------------------------------------------------------- */ -#ifdef dr16 +#ifdef dr16_t #ifdef DEBUG DR16_t dr16; @@ -35,15 +35,22 @@ static CMD_RC_t cmd_rc; */ void Task_dr16(void *argument) { (void)argument; /* 未使用,消除警告 */ -#ifdef dr16 + const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_DR16; + uint32_t tick = osKernelGetTickCount(); + +#ifdef dr16_t DR16_Init(&dr16); /* 初始化dr16 */ +#endif while (1) { +#ifdef dr16_t + #ifdef DEBUG /* */ task_runtime.stack_water_mark.dr16 = osThreadGetStackSpace(osThreadGetId()); #endif + /* 开启DMA */ DR16_StartDmaRecv(&dr16); @@ -59,4 +66,9 @@ void Task_dr16(void *argument) { osMessageQueuePut(task_runtime.msgq.cmd.raw.rc, &cmd_rc, 0, 0); } #endif + + tick += delay_tick; /* 计算下一个唤醒时*/ + + osDelay(10); + } diff --git a/User/task/init.c b/User/task/init.c index c540de2..3c90daa 100644 --- a/User/task/init.c +++ b/User/task/init.c @@ -35,8 +35,10 @@ 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.r12ds = +// osThreadNew(Task_r12ds,NULL,&attr_r12ds); + task_runtime.thread.dr16 = + osThreadNew(Task_dr16,NULL,&attr_dr16); task_runtime.thread.can = osThreadNew(Task_can,NULL,&attr_can); diff --git a/User/task/nuc_task.c b/User/task/nuc_task.c index 4956f3b..98d9c81 100644 --- a/User/task/nuc_task.c +++ b/User/task/nuc_task.c @@ -6,6 +6,8 @@ NUC_t nuc_raw; CMD_NUC_t cmd_fromnuc; #else +static NUC_t nuc_raw; +static CMD_NUC_t cmd_fromnuc; #endif diff --git a/User/task/r12ds_task.c b/User/task/r12ds_task.c index 5dd5771..3e5aa3a 100644 --- a/User/task/r12ds_task.c +++ b/User/task/r12ds_task.c @@ -37,14 +37,21 @@ void Task_r12ds(void *argument) { (void)argument; -#ifdef r12ds_t 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 = @@ -61,13 +68,15 @@ void Task_r12ds(void *argument) osMessageQueueReset(task_runtime.msgq.cmd.raw.rc); osMessageQueuePut(task_runtime.msgq.cmd.raw.rc,(&cmd_rc),0,0); +#endif tick += delay_tick; /* 计算下一个唤醒时*/ + osDelay(10); + } -#endif } diff --git a/User/task/user_task.c b/User/task/user_task.c index f6c9ae8..cbfad5d 100644 --- a/User/task/user_task.c +++ b/User/task/user_task.c @@ -30,11 +30,11 @@ const osThreadAttr_t attr_chassis = { .priority = osPriorityAboveNormal, .stack_size = 512 * 4, }; -const osThreadAttr_t attr_r12ds = { - .name = "r12ds", - .priority = osPriorityRealtime, - .stack_size = 128 * 4, -}; +//const osThreadAttr_t attr_r12ds = { +// .name = "r12ds", +// .priority = osPriorityRealtime, +// .stack_size = 128 * 4, +//}; const osThreadAttr_t attr_can = { .name = "can", diff --git a/User/task/user_task.h b/User/task/user_task.h index 9317486..8ed568d 100644 --- a/User/task/user_task.h +++ b/User/task/user_task.h @@ -19,7 +19,7 @@ #define TASK_FREQ_NUC (500u) #define TASK_FREQ_CAN (1000u) #define TASK_FREQ_R12DS (1000u) -#define TASK_FREQ_dr16 (1000u) +#define TASK_FREQ_DR16 (1000u) #define TASK_FREQ_ERROR_DTC (3u) @@ -36,11 +36,8 @@ typedef struct { struct { osThreadId_t atti_esti; osThreadId_t chassis; - osThreadId_t dr16; - - osThreadId_t r12ds; - - osThreadId_t ai; + osThreadId_t dr16; + osThreadId_t r12ds; osThreadId_t can; osThreadId_t cmd; osThreadId_t nuc; @@ -110,6 +107,8 @@ typedef struct { float can; float atti_esti; float r12ds; + float dr16; + float cmd; float nuc; float error_detect; @@ -120,6 +119,8 @@ typedef struct { float can; float atti_esti; float r12ds; + float dr16; + float cmd; float nuc; float error_detect; @@ -143,9 +144,9 @@ extern const osThreadAttr_t attr_nuc; extern const osThreadAttr_t attr_error_detect; -//extern const osThreadAttr_t attr_dr16; +extern const osThreadAttr_t attr_dr16; -extern const osThreadAttr_t attr_r12ds; +//extern const osThreadAttr_t attr_r12ds; /* Exported functions prototypes -------------------------------------------- */ void Task_Init(void *argument);