Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
7f2d2a0856 |
36
MDK-ARM/.vscode/c_cpp_properties.json
vendored
36
MDK-ARM/.vscode/c_cpp_properties.json
vendored
@ -3,26 +3,26 @@
|
||||
{
|
||||
"name": "R1-shooter",
|
||||
"includePath": [
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\Core\\Inc",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\Drivers\\STM32F4xx_HAL_Driver\\Inc",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\Drivers\\STM32F4xx_HAL_Driver\\Inc\\Legacy",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\Middlewares\\Third_Party\\FreeRTOS\\Source\\include",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\Middlewares\\Third_Party\\FreeRTOS\\Source\\CMSIS_RTOS_V2",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\RVDS\\ARM_CM4F",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\Drivers\\CMSIS\\Device\\ST\\STM32F4xx\\Include",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\Drivers\\CMSIS\\Include",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\User\\bsp",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\User\\module",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\User\\task",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\User\\lib",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\User\\device",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\Core\\Inc",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\Drivers\\STM32F4xx_HAL_Driver\\Inc",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\Drivers\\STM32F4xx_HAL_Driver\\Inc\\Legacy",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\Middlewares\\Third_Party\\FreeRTOS\\Source\\include",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\Middlewares\\Third_Party\\FreeRTOS\\Source\\CMSIS_RTOS_V2",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\RVDS\\ARM_CM4F",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\Drivers\\CMSIS\\Device\\ST\\STM32F4xx\\Include",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\Drivers\\CMSIS\\Include",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\User\\bsp",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\User\\module",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\User\\task",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\User\\lib",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\User\\device",
|
||||
"D:\\keil\\ARM\\ARMCC\\include",
|
||||
"D:\\keil\\ARM\\ARMCC\\include\\rw",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\MDK-ARM",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\Core\\Src",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\Drivers\\STM32F4xx_HAL_Driver\\Src",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\Middlewares\\Third_Party\\FreeRTOS\\Source",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1upper-1\\Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\MemMang"
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\MDK-ARM",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\Core\\Src",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\Drivers\\STM32F4xx_HAL_Driver\\Src",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\Middlewares\\Third_Party\\FreeRTOS\\Source",
|
||||
"d:\\Desktop\\r1\\r1_upper\\r1_upper\\r1upper-1\\Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\MemMang"
|
||||
],
|
||||
"defines": [
|
||||
"USE_HAL_DRIVER",
|
||||
|
28
MDK-ARM/.vscode/uv4.log
vendored
28
MDK-ARM/.vscode/uv4.log
vendored
@ -1,8 +1,30 @@
|
||||
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\keil\ARM\ARMCC\Bin'
|
||||
Build target 'R1-shooter'
|
||||
compiling gpio.c...
|
||||
compiling main.c...
|
||||
compiling userTask.c...
|
||||
compiling usart.c...
|
||||
compiling gimbal.cpp...
|
||||
compiling shoot.cpp...
|
||||
compiling remote_control.c...
|
||||
compiling nuc.c...
|
||||
compiling user_math.c...
|
||||
compiling uart_it.c...
|
||||
compiling motor.cpp...
|
||||
compiling GO_M8010_6_Driver.c...
|
||||
compiling djiMotor.c...
|
||||
..\User\device\djiMotor.c(162): warning: #177-D: variable "eventReceive" was declared but never referenced
|
||||
static osEventFlagsId_t eventReceive;
|
||||
..\User\device\djiMotor.c: 1 warning, 0 errors
|
||||
compiling initTask.c...
|
||||
compiling ball.cpp...
|
||||
compiling ballTask.cpp...
|
||||
compiling encodeCan.cpp...
|
||||
compiling gimbalTask.cpp...
|
||||
compiling nucTask.cpp...
|
||||
compiling shootTask.cpp...
|
||||
linking...
|
||||
Program Size: Code=26644 RO-data=1812 RW-data=240 ZI-data=23520
|
||||
Program Size: Code=26664 RO-data=1812 RW-data=244 ZI-data=23516
|
||||
FromELF: creating hex file...
|
||||
"R1-shooter\R1-shooter.axf" - 0 Error(s), 0 Warning(s).
|
||||
Build Time Elapsed: 00:00:03
|
||||
"R1-shooter\R1-shooter.axf" - 0 Error(s), 1 Warning(s).
|
||||
Build Time Elapsed: 00:00:24
|
||||
|
2
MDK-ARM/.vscode/uv4.log.lock
vendored
2
MDK-ARM/.vscode/uv4.log.lock
vendored
@ -1 +1 @@
|
||||
2025/4/26 16:32:18
|
||||
2025/6/14 13:19:08
|
@ -103,7 +103,7 @@
|
||||
<bEvRecOn>1</bEvRecOn>
|
||||
<bSchkAxf>0</bSchkAxf>
|
||||
<bTchkAxf>0</bTchkAxf>
|
||||
<nTsel>3</nTsel>
|
||||
<nTsel>6</nTsel>
|
||||
<sDll></sDll>
|
||||
<sDllPa></sDllPa>
|
||||
<sDlgDll></sDlgDll>
|
||||
@ -114,7 +114,7 @@
|
||||
<tDlgDll></tDlgDll>
|
||||
<tDlgPa></tDlgPa>
|
||||
<tIfile></tIfile>
|
||||
<pMon>BIN\CMSIS_AGDI.dll</pMon>
|
||||
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
|
||||
</DebugOpt>
|
||||
<TargetDriverDllRegistry>
|
||||
<SetRegEntry>
|
||||
@ -140,7 +140,7 @@
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
<Key>DLGUARM</Key>
|
||||
<Name></Name>
|
||||
<Name>(105=-1,-1,-1,-1,0)</Name>
|
||||
</SetRegEntry>
|
||||
<SetRegEntry>
|
||||
<Number>0</Number>
|
||||
@ -1041,7 +1041,7 @@
|
||||
|
||||
<Group>
|
||||
<GroupName>User/module</GroupName>
|
||||
<tvExp>0</tvExp>
|
||||
<tvExp>1</tvExp>
|
||||
<tvExpOptDlg>0</tvExpOptDlg>
|
||||
<cbSel>0</cbSel>
|
||||
<RteFlg>0</RteFlg>
|
||||
|
@ -29,7 +29,7 @@ Ball ::Ball()
|
||||
if(i <=3)
|
||||
{
|
||||
hand_Motor[i]->type = M3508;//设置电机类型
|
||||
PID_init(&speed_pid[i],PID_POSITION,M3508_speed_PID,16000, 1000);//pid初始化
|
||||
PID_init(&speed_pid[i],PID_POSITION,M3508_speed_PID,16000, 10000);//pid初始化
|
||||
}
|
||||
result[i] = 0;
|
||||
speedSet[i] = 0;
|
||||
@ -87,9 +87,9 @@ void Ball::ballHadling(void)
|
||||
|
||||
if (ball_state == 1) //读光电 有球 0 无球 1
|
||||
{
|
||||
osDelay(100); // 延时200ms
|
||||
speedm=2500;
|
||||
speedm1=2500;
|
||||
osDelay(200); // 延时200ms
|
||||
speedm=4500;
|
||||
speedm1=4500;
|
||||
currentState1 = BALL_REVERSE; // 切换到反转状态
|
||||
}
|
||||
|
||||
@ -100,6 +100,7 @@ void Ball::ballHadling(void)
|
||||
if (ball_state == 0)
|
||||
{
|
||||
|
||||
//flag=2; //抽象的计次
|
||||
speedm=0; // 停止电机
|
||||
speedm1=0;
|
||||
currentState1 = BALL_CLOSE; // 切换到完成状态
|
||||
@ -114,7 +115,15 @@ void Ball::ballHadling(void)
|
||||
HAL_GPIO_WritePin(CLOSE_GPIO_Port, CLOSE_Pin, GPIO_PIN_RESET);
|
||||
currentState1 = BALL_FINISH; // 切换到完成状态
|
||||
}
|
||||
|
||||
// if (flag == 2)
|
||||
// {
|
||||
// if(ball_state == 0)
|
||||
// {
|
||||
// HAL_GPIO_WritePin(CLOSE_GPIO_Port, CLOSE_Pin, GPIO_PIN_RESET);
|
||||
// currentState1 = BALL_FINISH; // 切换到完成状态
|
||||
// }
|
||||
|
||||
// }
|
||||
break;
|
||||
|
||||
case BALL_FINISH:
|
||||
@ -208,6 +217,8 @@ void Ball::ballHadling(void)
|
||||
{
|
||||
case BALL_IDLE:
|
||||
HAL_GPIO_WritePin(CLOSE_GPIO_Port, CLOSE_Pin, GPIO_PIN_RESET); // 确保气缸闭合
|
||||
HAL_GPIO_WritePin(PAW_GPIO_Port, PAW_Pin, GPIO_PIN_RESET); // 确保气缸爪子闭合
|
||||
HAL_GPIO_WritePin(DOWN_GPIO_Port, DOWN_Pin, GPIO_PIN_RESET); // 确保下气缸关闭
|
||||
if (key > 0) // 检测按键是否被按下
|
||||
{
|
||||
key = 0; // 重置按键状态
|
||||
@ -218,7 +229,7 @@ void Ball::ballHadling(void)
|
||||
|
||||
case BALL_FORWARD:
|
||||
HAL_GPIO_WritePin(PAW_GPIO_Port, PAW_Pin, GPIO_PIN_SET); // 打开气缸爪子
|
||||
osDelay(5);
|
||||
osDelay(10);
|
||||
HAL_GPIO_WritePin(DOWN_GPIO_Port, DOWN_Pin, GPIO_PIN_SET); // 打开下气缸
|
||||
currentState1 = BALL_DROP; // 切换到球下落状态
|
||||
break;
|
||||
@ -251,7 +262,7 @@ void Ball::ballHadling(void)
|
||||
case BALL_CLOSE:
|
||||
if (triggerCount == 2) // 确保是第二次触发
|
||||
{
|
||||
osDelay(100); // 延时去抖
|
||||
//osDelay(10); // 延时去抖
|
||||
HAL_GPIO_WritePin(PAW_GPIO_Port, PAW_Pin, GPIO_PIN_RESET); // 闭合气缸爪子
|
||||
currentState1 = BALL_REVERSE; // 切换到反转状态
|
||||
}
|
||||
|
@ -7,7 +7,7 @@
|
||||
#include "djiMotor.h"
|
||||
#include "pid.h"
|
||||
|
||||
#define HANDLING3 1
|
||||
#define HANDLING3 0
|
||||
|
||||
// 定义状态枚举
|
||||
typedef enum {
|
||||
|
@ -18,8 +18,8 @@ void FunctionBall(void *argument)
|
||||
{
|
||||
(void)argument; /* 未使用argument,消除警告 */
|
||||
|
||||
const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_BALL;
|
||||
uint32_t tick = osKernelGetTickCount();
|
||||
// const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_BALL;
|
||||
// uint32_t tick = osKernelGetTickCount();
|
||||
|
||||
while(1)
|
||||
{
|
||||
@ -30,20 +30,19 @@ void FunctionBall(void *argument)
|
||||
//abc=HAL_GPIO_ReadPin(STOP_GPIO_Port, STOP_Pin);
|
||||
|
||||
ball.ballHadling(); // 处理摩擦轮转动
|
||||
ball.Spin(speedm,speedm1);
|
||||
ball.Send_control();
|
||||
// speedm=4000;
|
||||
// speedm1=4000;
|
||||
// ball.Spin(speedm,speedm1);
|
||||
// ball.Send_control();
|
||||
|
||||
vofa[0] = speedm; // 发送电机角度数据
|
||||
vofa[1] = -ball.hand_Motor[0]->speed_rpm; // 发送电机角度数据
|
||||
vofa[2] = ball.hand_Motor[1]->speed_rpm; // 发送电机速度数据
|
||||
vofa[3] = ball.hand_Motor[2]->speed_rpm; // 发送电机速度数据
|
||||
vofa[4] = ball.result[0];
|
||||
vofa[5] = ball.result[1];
|
||||
vofa[6] = ball.result[2];
|
||||
|
||||
vofa_tx_main(vofa); // 发送数据到虚拟串口
|
||||
// vofa[0] = speedm; // 发送电机角度数据
|
||||
// vofa[1] = -ball.hand_Motor[0]->speed_rpm; // 发送电机角度数据
|
||||
// vofa[2] = ball.hand_Motor[1]->speed_rpm; // 发送电机速度数据
|
||||
// vofa[3] = ball.hand_Motor[2]->speed_rpm; // 发送电机速度数据
|
||||
|
||||
tick += delay_tick; /* 计算下一个唤醒时刻 */
|
||||
osDelayUntil(tick);
|
||||
// vofa_tx_main(vofa); // 发送数据到虚拟串口
|
||||
|
||||
// tick += delay_tick; /* 计算下一个唤醒时刻 */
|
||||
// osDelayUntil(tick);
|
||||
}
|
||||
}
|
||||
|
@ -15,11 +15,11 @@ void FunctionCan(void *argument)
|
||||
{
|
||||
(void)argument; /* 未使用argument,消除警告 */
|
||||
|
||||
const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_CAN;
|
||||
//const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_CAN;
|
||||
|
||||
djiInit();
|
||||
|
||||
uint32_t tick = osKernelGetTickCount();
|
||||
//uint32_t tick = osKernelGetTickCount();
|
||||
while(1)
|
||||
{
|
||||
#ifdef DEBUG
|
||||
@ -30,7 +30,7 @@ void FunctionCan(void *argument)
|
||||
djiMotorEncode();
|
||||
can2MotorEncode();
|
||||
|
||||
tick += delay_tick; /* 计算下一个唤醒时刻 */
|
||||
osDelayUntil(tick);
|
||||
// tick += delay_tick; /* 计算下一个唤醒时刻 */
|
||||
// osDelayUntil(tick);
|
||||
}
|
||||
}
|
||||
|
@ -15,12 +15,23 @@ const osThreadAttr_t attr_gimbal = {
|
||||
.stack_size = 128 * 4,
|
||||
};
|
||||
|
||||
const osThreadAttr_t attr_take = {
|
||||
.name = "take",
|
||||
.priority = osPriorityRealtime,
|
||||
.stack_size = 128 * 4,
|
||||
};
|
||||
|
||||
const osThreadAttr_t attr_can = {
|
||||
.name = "can",
|
||||
.priority = osPriorityRealtime,
|
||||
.stack_size = 256 * 4,
|
||||
.stack_size = 128 * 8,
|
||||
};
|
||||
|
||||
const osThreadAttr_t attr_rc = {
|
||||
.name = "rc",
|
||||
.priority = osPriorityRealtime,
|
||||
.stack_size = 128 * 8,
|
||||
};
|
||||
|
||||
const osThreadAttr_t attr_ball = {
|
||||
.name = "ball",
|
||||
@ -30,7 +41,7 @@ const osThreadAttr_t attr_ball = {
|
||||
const osThreadAttr_t attr_nuc = {
|
||||
.name = "nuc",
|
||||
.priority = osPriorityRealtime,
|
||||
.stack_size = 128 * 4,
|
||||
.stack_size = 256 * 4,
|
||||
};
|
||||
|
||||
|
||||
|
@ -13,13 +13,16 @@ extern "C" {
|
||||
/* Exported constants ------------------------------------------------------- */
|
||||
|
||||
/* 所有任务都要define一个“任务运行频率”和“初始化延时” */
|
||||
#define TASK_FREQ_CTRL_GIMBAL (250u)
|
||||
#define TASK_FREQ_CTRL_CHASSIS (500u)
|
||||
#define TASK_FREQ_CTRL_GIMBAL (500u)
|
||||
#define TASK_FREQ_CTRL_SHOOT (500u)
|
||||
#define TASK_FREQ_CTRL_CAP (100u)
|
||||
#define TASK_FREQ_CTRL_COMMAND (500u)
|
||||
#define TASK_FREQ_INFO (4u)
|
||||
#define TASK_FREQ_MONITOR (2u)
|
||||
#define TASK_FREQ_CAN (1500u)
|
||||
#define TASK_FREQ_CAN (500u)
|
||||
#define TASK_FREQ_AI (500u)
|
||||
#define TASK_FREQ_BALL (500u)
|
||||
#define TASK_FREQ_BALL (250u)
|
||||
|
||||
#define TASK_INIT_DELAY_INFO (500u)
|
||||
#define TASK_INIT_DELAY_MONITOR (10)
|
||||
@ -39,11 +42,11 @@ typedef struct
|
||||
struct
|
||||
{
|
||||
osThreadId_t can;
|
||||
//osThreadId_t rc;
|
||||
osThreadId_t rc;
|
||||
osThreadId_t nuc;
|
||||
osThreadId_t shoot;
|
||||
osThreadId_t gimbal;
|
||||
//osThreadId_t handling;
|
||||
osThreadId_t handling;
|
||||
osThreadId_t ball;
|
||||
|
||||
}thread;
|
||||
@ -64,32 +67,32 @@ typedef struct
|
||||
#ifdef DEBUG
|
||||
struct {
|
||||
UBaseType_t can;
|
||||
//UBaseType_t rc;
|
||||
UBaseType_t rc;
|
||||
UBaseType_t nuc;
|
||||
UBaseType_t shoot;
|
||||
UBaseType_t gimbal;
|
||||
//UBaseType_t handling;
|
||||
UBaseType_t handling;
|
||||
UBaseType_t ball;
|
||||
|
||||
} stack_water_mark; /* stack使用 */
|
||||
|
||||
struct {
|
||||
float can;
|
||||
//float rc;
|
||||
float rc;
|
||||
float nuc;
|
||||
float shoot;
|
||||
float gimbal;
|
||||
//float handling;
|
||||
float handling;
|
||||
float ball;
|
||||
} freq; /* 任务运行频率 */
|
||||
|
||||
struct {
|
||||
float can;
|
||||
//float rc;
|
||||
float rc;
|
||||
float nuc;
|
||||
float shoot;
|
||||
float gimbal;
|
||||
//float handling;
|
||||
float handling;
|
||||
float ball;
|
||||
} last_up_time; /* 任务最近运行时 */
|
||||
#endif
|
||||
@ -100,7 +103,9 @@ typedef struct
|
||||
extern task_t task_struct; /* 任务结构体实例化 */
|
||||
extern const osThreadAttr_t attr_shoot;
|
||||
extern const osThreadAttr_t attr_gimbal;
|
||||
extern const osThreadAttr_t attr_take;
|
||||
extern const osThreadAttr_t attr_can;
|
||||
extern const osThreadAttr_t attr_rc;
|
||||
extern const osThreadAttr_t attr_ball;
|
||||
extern const osThreadAttr_t attr_nuc;
|
||||
extern const osEventFlagsAttr_t attr_event;
|
||||
|
Loading…
Reference in New Issue
Block a user