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);