Compare commits
No commits in common. "d56405a1bacc3a81acc6c0a988de7dd89433c4bb" and "f483ba99806b4ae8e5e8d4feb16bcf81dcecc854" have entirely different histories.
d56405a1ba
...
f483ba9980
@ -69,14 +69,6 @@ void Error_Handler(void);
|
|||||||
#define LED_G_GPIO_Port GPIOH
|
#define LED_G_GPIO_Port GPIOH
|
||||||
#define LED_B_Pin GPIO_PIN_10
|
#define LED_B_Pin GPIO_PIN_10
|
||||||
#define LED_B_GPIO_Port GPIOH
|
#define LED_B_GPIO_Port GPIOH
|
||||||
#define buzzer_Pin GPIO_PIN_14
|
|
||||||
#define buzzer_GPIO_Port GPIOD
|
|
||||||
#define down_Pin GPIO_PIN_13
|
|
||||||
#define down_GPIO_Port GPIOE
|
|
||||||
#define key_Pin GPIO_PIN_11
|
|
||||||
#define key_GPIO_Port GPIOE
|
|
||||||
#define paw_Pin GPIO_PIN_14
|
|
||||||
#define paw_GPIO_Port GPIOE
|
|
||||||
#define SPI_CS_Pin GPIO_PIN_12
|
#define SPI_CS_Pin GPIO_PIN_12
|
||||||
#define SPI_CS_GPIO_Port GPIOB
|
#define SPI_CS_GPIO_Port GPIOB
|
||||||
|
|
||||||
|
@ -34,14 +34,11 @@ extern "C" {
|
|||||||
|
|
||||||
extern TIM_HandleTypeDef htim1;
|
extern TIM_HandleTypeDef htim1;
|
||||||
|
|
||||||
extern TIM_HandleTypeDef htim4;
|
|
||||||
|
|
||||||
/* USER CODE BEGIN Private defines */
|
/* USER CODE BEGIN Private defines */
|
||||||
|
|
||||||
/* USER CODE END Private defines */
|
/* USER CODE END Private defines */
|
||||||
|
|
||||||
void MX_TIM1_Init(void);
|
void MX_TIM1_Init(void);
|
||||||
void MX_TIM4_Init(void);
|
|
||||||
|
|
||||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
void HAL_TIM_MspPostInit(TIM_HandleTypeDef *htim);
|
||||||
|
|
||||||
|
@ -57,9 +57,6 @@ void MX_GPIO_Init(void)
|
|||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(GPIOH, LED_R_Pin|LED_G_Pin|LED_B_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(GPIOH, LED_R_Pin|LED_G_Pin|LED_B_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
|
||||||
HAL_GPIO_WritePin(GPIOE, down_Pin|key_Pin|paw_Pin, GPIO_PIN_RESET);
|
|
||||||
|
|
||||||
/*Configure GPIO pin Output Level */
|
/*Configure GPIO pin Output Level */
|
||||||
HAL_GPIO_WritePin(SPI_CS_GPIO_Port, SPI_CS_Pin, GPIO_PIN_RESET);
|
HAL_GPIO_WritePin(SPI_CS_GPIO_Port, SPI_CS_Pin, GPIO_PIN_RESET);
|
||||||
|
|
||||||
@ -82,13 +79,6 @@ void MX_GPIO_Init(void)
|
|||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||||
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
|
HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
|
||||||
|
|
||||||
/*Configure GPIO pins : PEPin PEPin PEPin */
|
|
||||||
GPIO_InitStruct.Pin = down_Pin|key_Pin|paw_Pin;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
|
||||||
HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
|
|
||||||
|
|
||||||
/*Configure GPIO pin : PtPin */
|
/*Configure GPIO pin : PtPin */
|
||||||
GPIO_InitStruct.Pin = SPI_CS_Pin;
|
GPIO_InitStruct.Pin = SPI_CS_Pin;
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
|
||||||
|
@ -101,12 +101,9 @@ int main(void)
|
|||||||
MX_USART6_UART_Init();
|
MX_USART6_UART_Init();
|
||||||
MX_TIM1_Init();
|
MX_TIM1_Init();
|
||||||
MX_SPI2_Init();
|
MX_SPI2_Init();
|
||||||
MX_TIM4_Init();
|
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
//HAL_TIM_Base_Start(&htim1);
|
//HAL_TIM_Base_Start(&htim1);
|
||||||
//HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1 );
|
//HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1 );
|
||||||
HAL_TIM_Base_Start(&htim4);
|
|
||||||
HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_3);
|
|
||||||
/* USER CODE END 2 */
|
/* USER CODE END 2 */
|
||||||
|
|
||||||
/* Init scheduler */
|
/* Init scheduler */
|
||||||
|
109
Core/Src/tim.c
109
Core/Src/tim.c
@ -25,7 +25,6 @@
|
|||||||
/* USER CODE END 0 */
|
/* USER CODE END 0 */
|
||||||
|
|
||||||
TIM_HandleTypeDef htim1;
|
TIM_HandleTypeDef htim1;
|
||||||
TIM_HandleTypeDef htim4;
|
|
||||||
|
|
||||||
/* TIM1 init function */
|
/* TIM1 init function */
|
||||||
void MX_TIM1_Init(void)
|
void MX_TIM1_Init(void)
|
||||||
@ -86,60 +85,6 @@ void MX_TIM1_Init(void)
|
|||||||
/* USER CODE END TIM1_Init 2 */
|
/* USER CODE END TIM1_Init 2 */
|
||||||
HAL_TIM_MspPostInit(&htim1);
|
HAL_TIM_MspPostInit(&htim1);
|
||||||
|
|
||||||
}
|
|
||||||
/* TIM4 init function */
|
|
||||||
void MX_TIM4_Init(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM4_Init 0 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM4_Init 0 */
|
|
||||||
|
|
||||||
TIM_ClockConfigTypeDef sClockSourceConfig = {0};
|
|
||||||
TIM_MasterConfigTypeDef sMasterConfig = {0};
|
|
||||||
TIM_OC_InitTypeDef sConfigOC = {0};
|
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM4_Init 1 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM4_Init 1 */
|
|
||||||
htim4.Instance = TIM4;
|
|
||||||
htim4.Init.Prescaler = 0;
|
|
||||||
htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
|
|
||||||
htim4.Init.Period = 20999;
|
|
||||||
htim4.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
|
|
||||||
htim4.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
|
|
||||||
if (HAL_TIM_Base_Init(&htim4) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
|
|
||||||
if (HAL_TIM_ConfigClockSource(&htim4, &sClockSourceConfig) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
if (HAL_TIM_PWM_Init(&htim4) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
|
|
||||||
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
|
|
||||||
if (HAL_TIMEx_MasterConfigSynchronization(&htim4, &sMasterConfig) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
sConfigOC.OCMode = TIM_OCMODE_PWM1;
|
|
||||||
sConfigOC.Pulse = 0;
|
|
||||||
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
|
|
||||||
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
|
|
||||||
if (HAL_TIM_PWM_ConfigChannel(&htim4, &sConfigOC, TIM_CHANNEL_3) != HAL_OK)
|
|
||||||
{
|
|
||||||
Error_Handler();
|
|
||||||
}
|
|
||||||
/* USER CODE BEGIN TIM4_Init 2 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM4_Init 2 */
|
|
||||||
HAL_TIM_MspPostInit(&htim4);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* tim_pwmHandle)
|
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* tim_pwmHandle)
|
||||||
@ -157,22 +102,6 @@ void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef* tim_pwmHandle)
|
|||||||
/* USER CODE END TIM1_MspInit 1 */
|
/* USER CODE END TIM1_MspInit 1 */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle)
|
|
||||||
{
|
|
||||||
|
|
||||||
if(tim_baseHandle->Instance==TIM4)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM4_MspInit 0 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM4_MspInit 0 */
|
|
||||||
/* TIM4 clock enable */
|
|
||||||
__HAL_RCC_TIM4_CLK_ENABLE();
|
|
||||||
/* USER CODE BEGIN TIM4_MspInit 1 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM4_MspInit 1 */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
|
void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
|
||||||
{
|
{
|
||||||
|
|
||||||
@ -182,6 +111,7 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
|
|||||||
/* USER CODE BEGIN TIM1_MspPostInit 0 */
|
/* USER CODE BEGIN TIM1_MspPostInit 0 */
|
||||||
|
|
||||||
/* USER CODE END TIM1_MspPostInit 0 */
|
/* USER CODE END TIM1_MspPostInit 0 */
|
||||||
|
|
||||||
__HAL_RCC_GPIOE_CLK_ENABLE();
|
__HAL_RCC_GPIOE_CLK_ENABLE();
|
||||||
/**TIM1 GPIO Configuration
|
/**TIM1 GPIO Configuration
|
||||||
PE9 ------> TIM1_CH1
|
PE9 ------> TIM1_CH1
|
||||||
@ -197,27 +127,6 @@ void HAL_TIM_MspPostInit(TIM_HandleTypeDef* timHandle)
|
|||||||
|
|
||||||
/* USER CODE END TIM1_MspPostInit 1 */
|
/* USER CODE END TIM1_MspPostInit 1 */
|
||||||
}
|
}
|
||||||
else if(timHandle->Instance==TIM4)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM4_MspPostInit 0 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM4_MspPostInit 0 */
|
|
||||||
|
|
||||||
__HAL_RCC_GPIOD_CLK_ENABLE();
|
|
||||||
/**TIM4 GPIO Configuration
|
|
||||||
PD14 ------> TIM4_CH3
|
|
||||||
*/
|
|
||||||
GPIO_InitStruct.Pin = buzzer_Pin;
|
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
|
||||||
GPIO_InitStruct.Alternate = GPIO_AF2_TIM4;
|
|
||||||
HAL_GPIO_Init(buzzer_GPIO_Port, &GPIO_InitStruct);
|
|
||||||
|
|
||||||
/* USER CODE BEGIN TIM4_MspPostInit 1 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM4_MspPostInit 1 */
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -237,22 +146,6 @@ void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef* tim_pwmHandle)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle)
|
|
||||||
{
|
|
||||||
|
|
||||||
if(tim_baseHandle->Instance==TIM4)
|
|
||||||
{
|
|
||||||
/* USER CODE BEGIN TIM4_MspDeInit 0 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM4_MspDeInit 0 */
|
|
||||||
/* Peripheral clock disable */
|
|
||||||
__HAL_RCC_TIM4_CLK_DISABLE();
|
|
||||||
/* USER CODE BEGIN TIM4_MspDeInit 1 */
|
|
||||||
|
|
||||||
/* USER CODE END TIM4_MspDeInit 1 */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* USER CODE BEGIN 1 */
|
/* USER CODE BEGIN 1 */
|
||||||
|
|
||||||
/* USER CODE END 1 */
|
/* USER CODE END 1 */
|
||||||
|
@ -102,7 +102,7 @@ void MX_USART6_UART_Init(void)
|
|||||||
|
|
||||||
/* USER CODE END USART6_Init 1 */
|
/* USER CODE END USART6_Init 1 */
|
||||||
huart6.Instance = USART6;
|
huart6.Instance = USART6;
|
||||||
huart6.Init.BaudRate = 115200;
|
huart6.Init.BaudRate = 4000000;
|
||||||
huart6.Init.WordLength = UART_WORDLENGTH_8B;
|
huart6.Init.WordLength = UART_WORDLENGTH_8B;
|
||||||
huart6.Init.StopBits = UART_STOPBITS_1;
|
huart6.Init.StopBits = UART_STOPBITS_1;
|
||||||
huart6.Init.Parity = UART_PARITY_NONE;
|
huart6.Init.Parity = UART_PARITY_NONE;
|
||||||
|
36
MDK-ARM/.vscode/c_cpp_properties.json
vendored
36
MDK-ARM/.vscode/c_cpp_properties.json
vendored
@ -3,26 +3,26 @@
|
|||||||
{
|
{
|
||||||
"name": "mycode1",
|
"name": "mycode1",
|
||||||
"includePath": [
|
"includePath": [
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\Core\\Inc",
|
"d:\\Desktop\\mycode -vision\\Core\\Inc",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\Drivers\\STM32F4xx_HAL_Driver\\Inc",
|
"d:\\Desktop\\mycode -vision\\Drivers\\STM32F4xx_HAL_Driver\\Inc",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\Drivers\\STM32F4xx_HAL_Driver\\Inc\\Legacy",
|
"d:\\Desktop\\mycode -vision\\Drivers\\STM32F4xx_HAL_Driver\\Inc\\Legacy",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\Middlewares\\Third_Party\\FreeRTOS\\Source\\include",
|
"d:\\Desktop\\mycode -vision\\Middlewares\\Third_Party\\FreeRTOS\\Source\\include",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\Middlewares\\Third_Party\\FreeRTOS\\Source\\CMSIS_RTOS_V2",
|
"d:\\Desktop\\mycode -vision\\Middlewares\\Third_Party\\FreeRTOS\\Source\\CMSIS_RTOS_V2",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\RVDS\\ARM_CM4F",
|
"d:\\Desktop\\mycode -vision\\Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\RVDS\\ARM_CM4F",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\Drivers\\CMSIS\\Device\\ST\\STM32F4xx\\Include",
|
"d:\\Desktop\\mycode -vision\\Drivers\\CMSIS\\Device\\ST\\STM32F4xx\\Include",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\Drivers\\CMSIS\\Include",
|
"d:\\Desktop\\mycode -vision\\Drivers\\CMSIS\\Include",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\User\\bsp",
|
"d:\\Desktop\\mycode -vision\\User\\bsp",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\User\\device",
|
"d:\\Desktop\\mycode -vision\\User\\device",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\User\\lib",
|
"d:\\Desktop\\mycode -vision\\User\\lib",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\User\\module",
|
"d:\\Desktop\\mycode -vision\\User\\module",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\User\\task",
|
"d:\\Desktop\\mycode -vision\\User\\task",
|
||||||
"D:\\keil\\ARM\\ARMCC\\include",
|
"D:\\keil\\ARM\\ARMCC\\include",
|
||||||
"D:\\keil\\ARM\\ARMCC\\include\\rw",
|
"D:\\keil\\ARM\\ARMCC\\include\\rw",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\MDK-ARM",
|
"d:\\Desktop\\mycode -vision\\MDK-ARM",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\Core\\Src",
|
"d:\\Desktop\\mycode -vision\\Core\\Src",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\Drivers\\STM32F4xx_HAL_Driver\\Src",
|
"d:\\Desktop\\mycode -vision\\Drivers\\STM32F4xx_HAL_Driver\\Src",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\Middlewares\\Third_Party\\FreeRTOS\\Source",
|
"d:\\Desktop\\mycode -vision\\Middlewares\\Third_Party\\FreeRTOS\\Source",
|
||||||
"d:\\Desktop\\mycode-shoot\\shoot\\Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\MemMang"
|
"d:\\Desktop\\mycode -vision\\Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\MemMang"
|
||||||
],
|
],
|
||||||
"defines": [
|
"defines": [
|
||||||
"USE_HAL_DRIVER",
|
"USE_HAL_DRIVER",
|
||||||
|
42
MDK-ARM/.vscode/keil-assistant.log
vendored
42
MDK-ARM/.vscode/keil-assistant.log
vendored
@ -16,45 +16,3 @@
|
|||||||
|
|
||||||
[info] Log at : 2025/3/12|23:02:19|GMT+0800
|
[info] Log at : 2025/3/12|23:02:19|GMT+0800
|
||||||
|
|
||||||
[info] Log at : 2025/3/12|23:23:36|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|10:52:41|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|11:23:36|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|11:29:50|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|11:32:26|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|11:48:43|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|11:49:08|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|11:52:00|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|11:52:12|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|11:52:29|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|11:52:40|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|13:05:40|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|13:05:50|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|13:09:23|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|13:09:39|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|14:46:01|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|19:24:02|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/13|21:58:39|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/14|16:14:48|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/14|16:14:59|GMT+0800
|
|
||||||
|
|
||||||
[info] Log at : 2025/3/14|20:12:19|GMT+0800
|
|
||||||
|
|
||||||
|
9
MDK-ARM/.vscode/settings.json
vendored
9
MDK-ARM/.vscode/settings.json
vendored
@ -10,13 +10,6 @@
|
|||||||
"can_task.h": "c",
|
"can_task.h": "c",
|
||||||
"go_m8010_6_driver.h": "c",
|
"go_m8010_6_driver.h": "c",
|
||||||
"read_spi.h": "c",
|
"read_spi.h": "c",
|
||||||
"djimotor.h": "c",
|
"djimotor.h": "c"
|
||||||
"buzzer.h": "c",
|
|
||||||
"main.h": "c",
|
|
||||||
"ball.h": "c",
|
|
||||||
"shoot.h": "c",
|
|
||||||
"dji.h": "c",
|
|
||||||
"calc_lib.h": "c",
|
|
||||||
"odrive_shoot.h": "c"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
11
MDK-ARM/.vscode/uv4.log
vendored
11
MDK-ARM/.vscode/uv4.log
vendored
@ -1,10 +1,13 @@
|
|||||||
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\keil\ARM\ARMCC\Bin'
|
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\keil\ARM\ARMCC\Bin'
|
||||||
Build target 'mycode1'
|
Build target 'mycode1'
|
||||||
compiling read_spi.c...
|
compiling dji_task.c...
|
||||||
compiling odrive_shoot.c...
|
compiling dji.c...
|
||||||
|
compiling djiMotor.c...
|
||||||
compiling shoot_task.c...
|
compiling shoot_task.c...
|
||||||
|
compiling can_task.c...
|
||||||
|
compiling odrive_shoot.c...
|
||||||
linking...
|
linking...
|
||||||
Program Size: Code=26528 RO-data=1904 RW-data=280 ZI-data=22496
|
Program Size: Code=26064 RO-data=1860 RW-data=284 ZI-data=22276
|
||||||
FromELF: creating hex file...
|
FromELF: creating hex file...
|
||||||
"mycode1\mycode1.axf" - 0 Error(s), 0 Warning(s).
|
"mycode1\mycode1.axf" - 0 Error(s), 0 Warning(s).
|
||||||
Build Time Elapsed: 00:00:03
|
Build Time Elapsed: 00:00:04
|
||||||
|
2
MDK-ARM/.vscode/uv4.log.lock
vendored
2
MDK-ARM/.vscode/uv4.log.lock
vendored
@ -1 +1 @@
|
|||||||
2025/3/14 20:41:26
|
2025/3/12 20:09:49
|
@ -153,92 +153,62 @@
|
|||||||
<Ww>
|
<Ww>
|
||||||
<count>0</count>
|
<count>0</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>cmd_fromnuc</ItemText>
|
<ItemText>go</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>1</count>
|
<count>1</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>nucbuf</ItemText>
|
<ItemText>Temp_buffer</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>2</count>
|
<count>2</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>motor_3508_data,0x0A</ItemText>
|
<ItemText>cmd_fromnuc</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>3</count>
|
<count>3</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>speed,0x0A</ItemText>
|
<ItemText>nucbuf</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>4</count>
|
<count>4</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>RC_mess,0x0A</ItemText>
|
<ItemText>motor_3508_data,0x0A</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>5</count>
|
<count>5</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>M3508_speed_PID</ItemText>
|
<ItemText>speed,0x0A</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>6</count>
|
<count>6</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>M3508_angle_PID</ItemText>
|
<ItemText>RC_mess</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>7</count>
|
<count>7</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>angle,0x0A</ItemText>
|
<ItemText>M3508_speed_PID</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>8</count>
|
<count>8</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>m,0x0A</ItemText>
|
<ItemText>M3508_angle_PID</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>9</count>
|
<count>9</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>go</ItemText>
|
<ItemText>angle,0x0A</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>10</count>
|
<count>10</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>basketball,0x0A</ItemText>
|
<ItemText>m,0x0A</ItemText>
|
||||||
</Ww>
|
</Ww>
|
||||||
<Ww>
|
<Ww>
|
||||||
<count>11</count>
|
<count>11</count>
|
||||||
<WinNumber>1</WinNumber>
|
<WinNumber>1</WinNumber>
|
||||||
<ItemText>angleo,0x0A</ItemText>
|
<ItemText>go</ItemText>
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>12</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>shoot</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>13</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>multi_turn_angle,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>14</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>angle_encoder</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>15</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>back_angle,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>16</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>encoder,0x0A</ItemText>
|
|
||||||
</Ww>
|
|
||||||
<Ww>
|
|
||||||
<count>17</count>
|
|
||||||
<WinNumber>1</WinNumber>
|
|
||||||
<ItemText>angles</ItemText>
|
|
||||||
</Ww>
|
</Ww>
|
||||||
</WatchWindow1>
|
</WatchWindow1>
|
||||||
<WatchWindow2>
|
<WatchWindow2>
|
||||||
@ -322,7 +292,7 @@
|
|||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>Application/User/Core</GroupName>
|
<GroupName>Application/User/Core</GroupName>
|
||||||
<tvExp>1</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
@ -1078,53 +1048,17 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
|
||||||
<GroupNumber>9</GroupNumber>
|
|
||||||
<FileNumber>60</FileNumber>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<tvExp>0</tvExp>
|
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
|
||||||
<bDave2>0</bDave2>
|
|
||||||
<PathWithFileName>..\User\module\buzzer.c</PathWithFileName>
|
|
||||||
<FilenameWithoutPath>buzzer.c</FilenameWithoutPath>
|
|
||||||
<RteFlg>0</RteFlg>
|
|
||||||
<bShared>0</bShared>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<GroupNumber>9</GroupNumber>
|
|
||||||
<FileNumber>61</FileNumber>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<tvExp>0</tvExp>
|
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
|
||||||
<bDave2>0</bDave2>
|
|
||||||
<PathWithFileName>..\User\module\ball.c</PathWithFileName>
|
|
||||||
<FilenameWithoutPath>ball.c</FilenameWithoutPath>
|
|
||||||
<RteFlg>0</RteFlg>
|
|
||||||
<bShared>0</bShared>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<GroupNumber>9</GroupNumber>
|
|
||||||
<FileNumber>62</FileNumber>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<tvExp>0</tvExp>
|
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
|
||||||
<bDave2>0</bDave2>
|
|
||||||
<PathWithFileName>..\User\module\shoot.c</PathWithFileName>
|
|
||||||
<FilenameWithoutPath>shoot.c</FilenameWithoutPath>
|
|
||||||
<RteFlg>0</RteFlg>
|
|
||||||
<bShared>0</bShared>
|
|
||||||
</File>
|
|
||||||
</Group>
|
</Group>
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
<GroupName>User/task</GroupName>
|
<GroupName>User/task</GroupName>
|
||||||
<tvExp>1</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
<cbSel>0</cbSel>
|
<cbSel>0</cbSel>
|
||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>63</FileNumber>
|
<FileNumber>60</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@ -1136,7 +1070,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>64</FileNumber>
|
<FileNumber>61</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@ -1148,7 +1082,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>65</FileNumber>
|
<FileNumber>62</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@ -1160,7 +1094,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>66</FileNumber>
|
<FileNumber>63</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@ -1172,7 +1106,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>67</FileNumber>
|
<FileNumber>64</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@ -1184,7 +1118,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>68</FileNumber>
|
<FileNumber>65</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@ -1196,7 +1130,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>69</FileNumber>
|
<FileNumber>66</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@ -1208,7 +1142,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>70</FileNumber>
|
<FileNumber>67</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@ -1220,7 +1154,7 @@
|
|||||||
</File>
|
</File>
|
||||||
<File>
|
<File>
|
||||||
<GroupNumber>10</GroupNumber>
|
<GroupNumber>10</GroupNumber>
|
||||||
<FileNumber>71</FileNumber>
|
<FileNumber>68</FileNumber>
|
||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<tvExp>0</tvExp>
|
<tvExp>0</tvExp>
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
<tvExpOptDlg>0</tvExpOptDlg>
|
||||||
@ -1230,18 +1164,6 @@
|
|||||||
<RteFlg>0</RteFlg>
|
<RteFlg>0</RteFlg>
|
||||||
<bShared>0</bShared>
|
<bShared>0</bShared>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
|
||||||
<GroupNumber>10</GroupNumber>
|
|
||||||
<FileNumber>72</FileNumber>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<tvExp>0</tvExp>
|
|
||||||
<tvExpOptDlg>0</tvExpOptDlg>
|
|
||||||
<bDave2>0</bDave2>
|
|
||||||
<PathWithFileName>..\User\task\ball_task.c</PathWithFileName>
|
|
||||||
<FilenameWithoutPath>ball_task.c</FilenameWithoutPath>
|
|
||||||
<RteFlg>0</RteFlg>
|
|
||||||
<bShared>0</bShared>
|
|
||||||
</File>
|
|
||||||
</Group>
|
</Group>
|
||||||
|
|
||||||
<Group>
|
<Group>
|
||||||
|
@ -820,21 +820,6 @@
|
|||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>..\User\module\odrive_shoot.c</FilePath>
|
<FilePath>..\User\module\odrive_shoot.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
|
||||||
<FileName>buzzer.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>..\User\module\buzzer.c</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<FileName>ball.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>..\User\module\ball.c</FilePath>
|
|
||||||
</File>
|
|
||||||
<File>
|
|
||||||
<FileName>shoot.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>..\User\module\shoot.c</FilePath>
|
|
||||||
</File>
|
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
@ -885,11 +870,6 @@
|
|||||||
<FileType>1</FileType>
|
<FileType>1</FileType>
|
||||||
<FilePath>..\User\task\rc_task.c</FilePath>
|
<FilePath>..\User\task\rc_task.c</FilePath>
|
||||||
</File>
|
</File>
|
||||||
<File>
|
|
||||||
<FileName>ball_task.c</FileName>
|
|
||||||
<FileType>1</FileType>
|
|
||||||
<FilePath>..\User\task\ball_task.c</FilePath>
|
|
||||||
</File>
|
|
||||||
</Files>
|
</Files>
|
||||||
</Group>
|
</Group>
|
||||||
<Group>
|
<Group>
|
||||||
|
@ -1,8 +1,3 @@
|
|||||||
# myshoot
|
# shoot
|
||||||
|
|
||||||
## r1上层
|
r1上层
|
||||||
|
|
||||||
1. **odrive**推射 **can1** **id 010** **spi2**读取as5047p
|
|
||||||
2. go1 RS485模块 01翻转 02云台
|
|
||||||
3. 爪子 左三PC6
|
|
||||||
4. 接球 左一左2 PI7 PI6
|
|
@ -136,6 +136,8 @@ device_status_e odrive_pos_cmd(node_id_e node_id, fp32 pos);
|
|||||||
*/
|
*/
|
||||||
odrive_msg_t* Get_Odrive_Point(void);
|
odrive_msg_t* Get_Odrive_Point(void);
|
||||||
|
|
||||||
|
void odrive_CB(void);
|
||||||
|
|
||||||
void User_Odrive_Can1_CB(void);
|
void User_Odrive_Can1_CB(void);
|
||||||
void User_Odrive_Can2_CB(void);
|
void User_Odrive_Can2_CB(void);
|
||||||
|
|
||||||
|
@ -40,31 +40,41 @@ uint16_t AS5047_read(uint16_t add)
|
|||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Encoder_Init(Encoder_t *ptr) {
|
// void Update_MultiTurn_Angle(void)
|
||||||
ptr->round_cnt = 0;
|
// {
|
||||||
ptr->ecd = AS5047_read(ANGLEUNC);
|
// uint16_t current_angle = AS5047_read(ANGLEUNC);
|
||||||
ptr->last_ecd = ptr->ecd;
|
// int16_t angle_diff = current_angle - last_angle;
|
||||||
ptr->offset_ecd = ptr->ecd;
|
|
||||||
ptr->total_angle = 0.0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update_Encoder(Encoder_t *ptr) {
|
// // 检测角度跳变
|
||||||
ptr->ecd = AS5047_read(ANGLEUNC);
|
// if (angle_diff > 8192) // 角度从低到高跳变
|
||||||
|
// {
|
||||||
|
// multi_turn_angle -= (16384 - angle_diff);
|
||||||
|
// }
|
||||||
|
// else if (angle_diff < -8192) // 角度从高到低跳变
|
||||||
|
// {
|
||||||
|
// multi_turn_angle += (16384 + angle_diff);
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// multi_turn_angle += angle_diff;
|
||||||
|
// }
|
||||||
|
|
||||||
if (ptr->ecd - ptr->last_ecd > 4096) {
|
// last_angle = current_angle;
|
||||||
ptr->round_cnt--;
|
// }
|
||||||
} else if (ptr->ecd - ptr->last_ecd < -4096) {
|
void Update_MultiTurn_Angle(void)
|
||||||
ptr->round_cnt++;
|
{
|
||||||
|
uint16_t current_angle = AS5047_read(ANGLEUNC);
|
||||||
|
int16_t angle_diff = current_angle - last_angle;
|
||||||
|
|
||||||
|
// 检测角度跳变
|
||||||
|
if (angle_diff > 8192) // 角度从低到高跳变
|
||||||
|
{
|
||||||
|
multi_turn_angle -= 1;
|
||||||
|
}
|
||||||
|
else if (angle_diff < -8192) // 角度从高到低跳变
|
||||||
|
{
|
||||||
|
multi_turn_angle += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
ptr->total_angle = (double)((ptr->round_cnt * 8192 + ptr->ecd - ptr->offset_ecd) );
|
last_angle = current_angle;
|
||||||
ptr->last_ecd = ptr->ecd;
|
|
||||||
}
|
|
||||||
|
|
||||||
int32_t Get_Encoder_Rounds(Encoder_t *ptr) {
|
|
||||||
return ptr->round_cnt;
|
|
||||||
}
|
|
||||||
|
|
||||||
double Get_Encoder_Angle(Encoder_t *ptr) {
|
|
||||||
return ptr->total_angle;
|
|
||||||
}
|
}
|
||||||
|
@ -18,14 +18,6 @@
|
|||||||
#define SETTINGS1 0x0018
|
#define SETTINGS1 0x0018
|
||||||
#define SETTINGS2 0x0019
|
#define SETTINGS2 0x0019
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int32_t round_cnt;
|
|
||||||
uint16_t ecd;
|
|
||||||
uint16_t last_ecd;
|
|
||||||
uint16_t offset_ecd;
|
|
||||||
double total_angle;
|
|
||||||
} Encoder_t;
|
|
||||||
|
|
||||||
#define AS5407P_CS_H() \
|
#define AS5407P_CS_H() \
|
||||||
HAL_GPIO_WritePin(SPI_CS_GPIO_Port, SPI_CS_Pin, GPIO_PIN_SET)
|
HAL_GPIO_WritePin(SPI_CS_GPIO_Port, SPI_CS_Pin, GPIO_PIN_SET)
|
||||||
#define AS5407P_CS_L() \
|
#define AS5407P_CS_L() \
|
||||||
@ -34,11 +26,6 @@ typedef struct {
|
|||||||
uint16_t Parity_bit_Calculate(uint16_t data_2_cal);
|
uint16_t Parity_bit_Calculate(uint16_t data_2_cal);
|
||||||
uint16_t SPI_ReadWrite_OneByte(uint16_t _txdata);
|
uint16_t SPI_ReadWrite_OneByte(uint16_t _txdata);
|
||||||
uint16_t AS5047_read(uint16_t add);
|
uint16_t AS5047_read(uint16_t add);
|
||||||
|
void Update_MultiTurn_Angle(void);
|
||||||
|
|
||||||
void Encoder_Init(Encoder_t *ptr);
|
|
||||||
void Update_Encoder(Encoder_t *ptr);
|
|
||||||
int32_t Get_Encoder_Rounds(Encoder_t *ptr);
|
|
||||||
double Get_Encoder_Angle(Encoder_t *ptr);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,88 +0,0 @@
|
|||||||
#include "ball.h"
|
|
||||||
#include "main.h"
|
|
||||||
#include "cmsis_os.h"
|
|
||||||
#include "FreeRTOS.h"
|
|
||||||
#include "bsp_delay.h"
|
|
||||||
|
|
||||||
#define ballcome 1
|
|
||||||
#define balldown 0
|
|
||||||
|
|
||||||
//光电识别
|
|
||||||
int ball_in(void)
|
|
||||||
{
|
|
||||||
if (HAL_GPIO_ReadPin(ball_up_GPIO_Port, ball_up_Pin) == GPIO_PIN_SET)
|
|
||||||
{
|
|
||||||
return ballcome;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return balldown;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
int pass_ball(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (HAL_GPIO_ReadPin(ball_in1_GPIO_Port, ball_in1_Pin) == GPIO_PIN_SET)
|
|
||||||
{
|
|
||||||
return ballcome;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return balldown;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//运球
|
|
||||||
void handling_ball(int hand, int paw)
|
|
||||||
{
|
|
||||||
paw =ball_in();
|
|
||||||
if (hand == 1 && paw == 1)
|
|
||||||
{
|
|
||||||
//爪子
|
|
||||||
delay_us(100);
|
|
||||||
HAL_GPIO_WritePin(paw_GPIO_Port, paw_Pin, GPIO_PIN_RESET);
|
|
||||||
osDelay(2);
|
|
||||||
delay_us(100);
|
|
||||||
//上推
|
|
||||||
HAL_GPIO_WritePin(down_GPIO_Port, down_Pin, GPIO_PIN_RESET);
|
|
||||||
hand=0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
|
|
||||||
//爪子
|
|
||||||
HAL_GPIO_WritePin(paw_GPIO_Port, paw_Pin, GPIO_PIN_SET);
|
|
||||||
osDelay(2);
|
|
||||||
delay_us(100);
|
|
||||||
//下推
|
|
||||||
HAL_GPIO_WritePin(down_GPIO_Port, down_Pin, GPIO_PIN_SET);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//接球
|
|
||||||
int catch_ball(int inball)
|
|
||||||
{
|
|
||||||
inball =pass_ball();
|
|
||||||
if(inball==1)
|
|
||||||
{
|
|
||||||
return ballcome;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return balldown;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,19 +0,0 @@
|
|||||||
#ifndef _BALL_H_
|
|
||||||
#define _BALL_H_
|
|
||||||
|
|
||||||
typedef struct ball
|
|
||||||
{
|
|
||||||
int hand;//运球
|
|
||||||
int paw;//爪
|
|
||||||
int inball;//光电门
|
|
||||||
int to_shoot;//给发射
|
|
||||||
}BASKETBALL;
|
|
||||||
|
|
||||||
|
|
||||||
int ball_in(void);
|
|
||||||
int pass_ball(void);
|
|
||||||
void handling_ball(int hand, int paw);
|
|
||||||
int catch_ball(int inball);
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,79 +0,0 @@
|
|||||||
#include "buzzer.h"
|
|
||||||
|
|
||||||
uint32_t Frequency = 0;
|
|
||||||
uint32_t CLOCK = 10500000;
|
|
||||||
int i;
|
|
||||||
|
|
||||||
int pwm = MIN_BUZZER_PWM;
|
|
||||||
int psc = 0;
|
|
||||||
|
|
||||||
unsigned int notes[] = {
|
|
||||||
G3,C4,D4s,D4,C4,D4s,C4,D4,C4,G3s,A3s,G3,
|
|
||||||
G3,C4,D4s,D4,C4,D4s,C4,D4,C4,G3,F3s,F3,
|
|
||||||
F3,G3s,B3,D4, F3,G3s,B3,C4,
|
|
||||||
C4,D4s,A4s,G4s,G4,A4s,G4s,G4s,G4,G4,B3,C4,
|
|
||||||
C5,C5,B4,A4s, A4s,D5,C5,G4s,G4,
|
|
||||||
G4,A4s,G4,F4, F4,G4s,G4,F4,G4
|
|
||||||
};
|
|
||||||
unsigned int duration[] = {
|
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
|
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
|
|
||||||
1, 1, 1, 5, 1, 1, 1, 4,
|
|
||||||
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5,
|
|
||||||
1, 1, 1, 3, 1, 2, 1, 1, 4,
|
|
||||||
1, 1, 1, 3, 1, 2, 1, 1, 4
|
|
||||||
};
|
|
||||||
|
|
||||||
void buzzer_on(uint16_t note) {
|
|
||||||
Frequency = CLOCK / note; // 计算定时器的重载值
|
|
||||||
|
|
||||||
htim4.Init.Prescaler = 0; // 预分频器设置为0
|
|
||||||
htim4.Init.Period = Frequency; // 设置定时器的重载值
|
|
||||||
|
|
||||||
// 设置PWM的占空比为50%
|
|
||||||
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_3, Frequency / 2);
|
|
||||||
|
|
||||||
// 启动PWM
|
|
||||||
HAL_TIM_PWM_Start(&htim4, TIM_CHANNEL_3);
|
|
||||||
}
|
|
||||||
|
|
||||||
void noTone(void){
|
|
||||||
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_3, 0);
|
|
||||||
HAL_Delay(30);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void playSong(void){
|
|
||||||
for (i = 0; i < sizeof(notes)/sizeof(notes[0]); i++) {
|
|
||||||
Frequency = CLOCK / notes[i]; // 计算定时器的重载值
|
|
||||||
htim4.Instance->ARR = Frequency; // 设置定时器的重载值
|
|
||||||
__HAL_TIM_SET_COMPARE(&htim4, TIM_CHANNEL_3, Frequency / 2);// 设置PWM的占空比为50%
|
|
||||||
HAL_Delay(400*duration[i]);
|
|
||||||
noTone();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void set_buzzer_frequency(uint32_t freq){
|
|
||||||
__HAL_TIM_SetAutoreload(&htim4, freq);
|
|
||||||
__HAL_TIM_SetCompare(&htim4, TIM_CHANNEL_3, freq/2);
|
|
||||||
}
|
|
||||||
uint32_t music[3][205]={{9, 10, 9, 6, 9, 0, 6, 10, 9, 10, 12, 10, 9, 10, 9, 6, 8, 0, 10, 9, 12, 10}, {5, 9, 8, 3, 0, 8, 9, 10, 9, 8, 9, 5, 9, 8, 3, 0, 8, 9, 10, 9, 8, 9, 5, 9, 8, 3, 0, 8, 9, 10, 9, 8, 9, 5, 9, 8, 3, 0, 8, 10, 12, 13, 12, 0, 8, 9, 9, 8, 9, 10, 0, 10, 12, 13, 14, 13, 12, 10, 9, 9, 8, 9, 9, 9, 8, 0, 8, 10, 12, 13, 12, 0, 8, 9, 9, 8, 10, 0, 9, 10, 12, 13, 15, 16, 17, 16, 15, 12, 13, 15, 17, 17, 17, 16, 0, 12, 13, 15, 17, 17, 17, 16, 0}};
|
|
||||||
uint32_t lst[3][205]={{ 1, 1, 1, 1, 4, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 2, 2, 1, 1, 2}, {2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 3, 1, 2, 2, 2, 2, 4, 2, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 5, 1, 1, 1, 6, 6, 3, 1, 2, 2, 2, 2, 4, 1, 1, 2, 2, 2, 2, 2, 2, 2, 1, 1, 2, 2, 2, 2, 2, 4, 1, 1, 2, 2, 2, 2, 2, 8}};
|
|
||||||
uint32_t tones[]={21000000, 262, 294, 330, 349, 392, 440, 494, 523, 587, 659, 698, 784, 880, 988, 1046, 1174, 1318, 1396, 1568, 1760, 1976};
|
|
||||||
uint32_t lenth[]={22, 103};
|
|
||||||
|
|
||||||
uint32_t frequency = 21000000;
|
|
||||||
uint32_t nw = 0, time_base = 125;
|
|
||||||
uint32_t song = 1;
|
|
||||||
|
|
||||||
void see_you_again(void)
|
|
||||||
{
|
|
||||||
set_buzzer_frequency(frequency/tones[music[song][nw]]);
|
|
||||||
/* USER CODE BEGIN 3 */
|
|
||||||
HAL_Delay(time_base*lst[song][nw]-time_base*1/4);
|
|
||||||
set_buzzer_frequency(frequency/tones[0]);
|
|
||||||
HAL_Delay(time_base*1/64);
|
|
||||||
nw = (nw + 1) % lenth[song];
|
|
||||||
|
|
||||||
}
|
|
@ -1,53 +0,0 @@
|
|||||||
#ifndef _BUZZER_H_
|
|
||||||
#define _BUZZER_H_
|
|
||||||
|
|
||||||
#include "tim.h"
|
|
||||||
|
|
||||||
#define MIN_BUZZER_PWM ((uint32_t)10000)
|
|
||||||
#define MAX_BUZZER_PWM ((uint32_t)20000)
|
|
||||||
#define MAX_PSC ((uint32_t)1000)
|
|
||||||
#define C3 131
|
|
||||||
#define C3s 139
|
|
||||||
#define D3 147
|
|
||||||
#define D3s 156
|
|
||||||
#define E3 165
|
|
||||||
#define F3 175
|
|
||||||
#define F3s 185
|
|
||||||
#define G3 196
|
|
||||||
#define G3s 208
|
|
||||||
#define A3 220
|
|
||||||
#define A3s 233
|
|
||||||
#define B3 247
|
|
||||||
#define C4 262
|
|
||||||
#define C4s 277
|
|
||||||
#define D4 294
|
|
||||||
#define D4s 311
|
|
||||||
#define E4 330
|
|
||||||
#define F4 349
|
|
||||||
#define F4s 370
|
|
||||||
#define G4 392
|
|
||||||
#define G4s 415
|
|
||||||
#define A4 440
|
|
||||||
#define A4s 466
|
|
||||||
#define B4 494
|
|
||||||
#define C5 523
|
|
||||||
#define C5s 554
|
|
||||||
#define D5 587
|
|
||||||
#define D5s 622
|
|
||||||
#define E5 659
|
|
||||||
#define F5 698
|
|
||||||
#define F5s 740
|
|
||||||
#define G5 784
|
|
||||||
#define G5s 831
|
|
||||||
#define A5 880
|
|
||||||
#define A5s 932
|
|
||||||
#define B5 988
|
|
||||||
#define C6 1047
|
|
||||||
|
|
||||||
|
|
||||||
void buzzer_on(uint16_t note);
|
|
||||||
void noTone(void);
|
|
||||||
void playSong(void);
|
|
||||||
void see_you_again(void);
|
|
||||||
|
|
||||||
#endif
|
|
@ -26,49 +26,17 @@ fp32 M3508_PID[3]={4.9,0.01,0.0};
|
|||||||
int16_t result; //速度环
|
int16_t result; //速度环
|
||||||
float angleSet[MOTOR_NUM]; //位置环
|
float angleSet[MOTOR_NUM]; //位置环
|
||||||
|
|
||||||
//trigger
|
|
||||||
//编码器数据
|
|
||||||
const motor_measure_t *trigger_motor_data;//3508电机数据
|
|
||||||
|
|
||||||
pid_type_def t_speed_pid;//2006速度环pid结构体
|
|
||||||
pid_type_def t_angle_pid;//2006位置环pid结构体
|
|
||||||
|
|
||||||
fp32 M2006_speed_PID[3]={5.0,0.3,0.0}; //P,I,D(速度环)
|
|
||||||
fp32 M2006_angle_PID[3]={25.0,0.0,1.5}; //P,I,D(角度环)
|
|
||||||
//速度环pid参数
|
|
||||||
fp32 M2006_PID[3]={4.9,0.01,0.0};
|
|
||||||
|
|
||||||
int16_t t_result; //速度环 //can最后发送的数据
|
|
||||||
float t_angleSet[1]; //位置环
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void motor_init(void)
|
void motor_init(void)
|
||||||
{
|
{
|
||||||
// motor_3508_data=get_motor_point(0);
|
motor_3508_data=get_motor_point(0);
|
||||||
trigger_motor_data=get_motor_point(0);
|
|
||||||
// PID_init(&speed_pid,PID_POSITION,M3508_speed_PID,3000,1000);
|
// PID_init(&speed_pid,PID_POSITION,M3508_speed_PID,3000,1000);
|
||||||
// PID_init(&angle_pid,PID_POSITION,M3508_angle_PID,7000,2000);
|
// PID_init(&angle_pid,PID_POSITION,M3508_angle_PID,7000,2000);
|
||||||
|
|
||||||
// PID_init(&speed_pid,PID_POSITION,M3508_speed_PID,500000,500000);
|
PID_init(&speed_pid,PID_POSITION,M3508_speed_PID,500000,500000);
|
||||||
// PID_init(&angle_pid,PID_POSITION,M3508_angle_PID,500000,100000);
|
PID_init(&angle_pid,PID_POSITION,M3508_angle_PID,500000,100000);
|
||||||
|
|
||||||
PID_init(&t_speed_pid,PID_POSITION,M2006_speed_PID,500000,500000);
|
|
||||||
PID_init(&t_angle_pid,PID_POSITION,M2006_angle_PID,500000,100000);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
float trigger_angle = 0;
|
|
||||||
void trigger_pos(fp32 angle)
|
|
||||||
{
|
|
||||||
|
|
||||||
int16_t delta[1];
|
|
||||||
|
|
||||||
delta[0]=PID_calc(&t_angle_pid,trigger_motor_data->total_angle,angle);
|
|
||||||
t_result=PID_calc(&t_speed_pid,trigger_motor_data->speed_rpm,delta[0]);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void motor_speed(fp32 speed)
|
void motor_speed(fp32 speed)
|
||||||
{
|
{
|
||||||
@ -85,4 +53,3 @@ void motor_pos(fp32 angle)
|
|||||||
result=PID_calc(&speed_pid,motor_3508_data->speed_rpm,delta[0]);
|
result=PID_calc(&speed_pid,motor_3508_data->speed_rpm,delta[0]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,11 +14,30 @@ typedef enum
|
|||||||
MOTOR_NUM
|
MOTOR_NUM
|
||||||
}motorput_e;
|
}motorput_e;
|
||||||
|
|
||||||
|
// //电机输出
|
||||||
|
// int16_t result[MOTOR_NUM]; //速度环
|
||||||
|
// float angleSet[MOTOR_NUM]; //位置环
|
||||||
|
// //电机状态
|
||||||
|
|
||||||
|
// motor_measure_t* putMotor[MOTOR_NUM];
|
||||||
|
|
||||||
|
// //翻转3508pid
|
||||||
|
// static const float M3508_speed_PID[3];
|
||||||
|
// static const float M3508_angle_PID[3];
|
||||||
|
|
||||||
|
// //前后与夹球2006pid
|
||||||
|
// static const float M2006_speed_PID[3];
|
||||||
|
// static const float M2006_angle_PID[3];
|
||||||
|
// //电机速度pid结构体
|
||||||
|
// pid_type_def speed_pid[MOTOR_NUM];
|
||||||
|
// //位置环pid
|
||||||
|
// pid_type_def angle_pid[MOTOR_NUM];
|
||||||
|
// //暂存目标位置
|
||||||
|
// //0上下,1翻转,2前后,3夹球
|
||||||
|
// float angleSet[MOTOR_NUM];
|
||||||
|
|
||||||
void motor_init(void);
|
void motor_init(void);
|
||||||
void motor_speed(fp32 speed);
|
void motor_speed(fp32 speed);
|
||||||
void motor_pos(fp32 angle);
|
void motor_pos(fp32 angle);
|
||||||
|
|
||||||
void trigger_pos(fp32 angle);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -20,17 +20,20 @@ void gimbalInit(void)
|
|||||||
for(i = 0;i < GO_NUM;i ++)
|
for(i = 0;i < GO_NUM;i ++)
|
||||||
{
|
{
|
||||||
go.goData[i] = getGoPoint(i);//获取电机数据指针
|
go.goData[i] = getGoPoint(i);//获取电机数据指针
|
||||||
|
// PID_init(&angle_pid[i],PID_POSITION,PID_angle,15,0.5);//pid初始化
|
||||||
|
// PID_init(&speed_pid[i],PID_POSITION,PID_speed,60,0.2);//pid初始化
|
||||||
|
|
||||||
|
// result[i] = 0;
|
||||||
go.angleSetgo[i] = 0;
|
go.angleSetgo[i] = 0;
|
||||||
go.offestAngle[i] = 0;
|
go.offestAngle[i] = 0;
|
||||||
// GO_M8010_send_data(&huart1, i,0,0,0,0,0,0);
|
// GO_M8010_send_data(&huart1, i,0,0,0,0,0,0);
|
||||||
GO_M8010_send_data(&huart6, i,0,0,0,0,0,0);
|
GO_M8010_send_data(&huart6, i,0,0,0,0,0,0);
|
||||||
go.offestAngle[i] = go.goData[i]->Pos;
|
go.offestAngle[i] = go.goData[i]->Pos;
|
||||||
HAL_Delay(100);
|
HAL_Delay(2000);
|
||||||
// GO_M8010_send_data(&huart1, i,0,0,0,0,0,0);
|
// GO_M8010_send_data(&huart1, i,0,0,0,0,0,0);
|
||||||
GO_M8010_send_data(&huart6, i,0,0,0,0,0,0);
|
GO_M8010_send_data(&huart6, i,0,0,0,0,0,0);
|
||||||
go.offestAngle[i] = go.goData[i]->Pos;
|
go.offestAngle[i] = go.goData[i]->Pos;
|
||||||
HAL_Delay(100);
|
HAL_Delay(2000);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,8 +4,6 @@
|
|||||||
#include <cmsis_os2.h>
|
#include <cmsis_os2.h>
|
||||||
#include "read_spi.h"
|
#include "read_spi.h"
|
||||||
|
|
||||||
#include "vofa.h"
|
|
||||||
|
|
||||||
extern RC_mess_t RC_mess;
|
extern RC_mess_t RC_mess;
|
||||||
|
|
||||||
extern float angle_encoder;
|
extern float angle_encoder;
|
||||||
@ -14,28 +12,31 @@ extern volatile uint16_t last_angle ;
|
|||||||
|
|
||||||
#define POS_SET -10.6
|
#define POS_SET -10.6
|
||||||
#define POS_ZERO 2.705
|
#define POS_ZERO 2.705
|
||||||
#define ACCEL_SEND 100//梯形加速度
|
#define ACCEL_SEND 10//梯形加速度
|
||||||
#define ACCEL_BACK 100//返回时的加速度
|
#define ACCEL_BACK 5//返回时的加速度
|
||||||
#define DELAY 1000
|
#define DELAY 1000
|
||||||
|
|
||||||
fp32 shoot = 0;
|
fp32 shoot = 10;
|
||||||
fp32 back_angle = 0;
|
|
||||||
float vofa_spi[8];
|
|
||||||
|
|
||||||
void shootStep(void)
|
void shootStep(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
// back_angle=Get_Angle();
|
|
||||||
// angle_encoder=AS5047_read(ANGLEUNC);
|
angle_encoder=AS5047_read(ANGLEUNC);
|
||||||
// Update_MultiTurn_Angle();
|
Update_MultiTurn_Angle();
|
||||||
|
|
||||||
odrive_accel_cmd(AXIS0_NODE,ACCEL_SEND,ACCEL_SEND);
|
odrive_accel_cmd(AXIS0_NODE,ACCEL_SEND,ACCEL_SEND);
|
||||||
// osDelay(2);//不知道为什么要延时
|
// osDelay(2);//不知道为什么要延时
|
||||||
odrive_pos_cmd(AXIS0_NODE,shoot);
|
odrive_pos_cmd(AXIS0_NODE,shoot);
|
||||||
|
|
||||||
// vofa_spi[0]=shoot;
|
|
||||||
// vofa_spi[0]=multi_turn_angle;
|
// osDelay(5000);
|
||||||
// vofa_tx_main(vofa_spi);
|
// odrive_accel_cmd(AXIS0_NODE,5,5);
|
||||||
|
// odrive_pos_cmd(AXIS0_NODE,10);
|
||||||
|
// osDelay(DELAY);
|
||||||
|
// odrive_accel_cmd(AXIS1_NODE,ACCEL_BACK,ACCEL_BACK);
|
||||||
|
// odrive_pos_cmd(AXIS1_NODE,POS_ZERO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,6 +45,5 @@ void shootBack(void)
|
|||||||
odrive_accel_cmd(AXIS0_NODE,ACCEL_BACK,ACCEL_BACK);
|
odrive_accel_cmd(AXIS0_NODE,ACCEL_BACK,ACCEL_BACK);
|
||||||
osDelay(2);
|
osDelay(2);
|
||||||
odrive_pos_cmd(AXIS0_NODE,POS_ZERO);
|
odrive_pos_cmd(AXIS0_NODE,POS_ZERO);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,92 +0,0 @@
|
|||||||
#include "shoot.h"
|
|
||||||
#include "remote_control.h"
|
|
||||||
|
|
||||||
extern RC_mess_t RC_mess;
|
|
||||||
extern motor_measure_t *trigger_motor_data;//3508电机数据
|
|
||||||
|
|
||||||
|
|
||||||
#define GO1_SHOOT 0
|
|
||||||
#define ODRIVE_SHOOT 1
|
|
||||||
|
|
||||||
#define KP 0.12
|
|
||||||
#define KD 0.008
|
|
||||||
|
|
||||||
|
|
||||||
#if GO1_SHOOT == 1
|
|
||||||
GO_SHOOT goshoot;
|
|
||||||
|
|
||||||
void shooterInit(void)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
GO_M8010_init();
|
|
||||||
for(i = 0;i < GO_NUM;i ++)
|
|
||||||
{
|
|
||||||
goshoot.goData[i] = getGoPoint(i);//获取电机数据指针
|
|
||||||
|
|
||||||
goshoot.angleSetgo[i] = 0;
|
|
||||||
goshoot.offestAngle[i] = 0;
|
|
||||||
// GO_M8010_send_data(&huart1, i,0,0,0,0,0,0);
|
|
||||||
GO_M8010_send_data(&huart6, i,0,0,0,0,0,0);
|
|
||||||
goshoot.offestAngle[i] = goshoot.goData[i]->Pos;
|
|
||||||
HAL_Delay(100);
|
|
||||||
// GO_M8010_send_data(&huart1, i,0,0,0,0,0,0);
|
|
||||||
GO_M8010_send_data(&huart6, i,0,0,0,0,0,0);
|
|
||||||
goshoot.offestAngle[i] = goshoot.goData[i]->Pos;
|
|
||||||
HAL_Delay(100);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void shoot_ball(int key)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
//蓄力
|
|
||||||
if(trigger_motor_data->real_angle ==60)//扳机已闭合
|
|
||||||
{
|
|
||||||
goshoot.angleSetgo[0] = 10;
|
|
||||||
GO_M8010_send_data(&huart6, 0,0,0,goshoot.angleSetgo[0],1,KP,KD);
|
|
||||||
}
|
|
||||||
if (key ==2)//上升准备蓄力
|
|
||||||
{
|
|
||||||
goshoot.angleSetgo[0] = 0;
|
|
||||||
GO_M8010_send_data(&huart6, 0,0,0,goshoot.angleSetgo[0],1,KP,KD);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#elif ODRIVE_SHOOT == 1
|
|
||||||
//初始位置在最上面, 有球放过来, 电机转动到最下面等待发射
|
|
||||||
//发射指令,当到最高点时,扳机离合
|
|
||||||
//返回扳机,远动到最下面
|
|
||||||
|
|
||||||
extern float angle_encoder;
|
|
||||||
extern volatile int32_t multi_turn_angle ;
|
|
||||||
extern volatile uint16_t last_angle ;
|
|
||||||
|
|
||||||
void shoot_odrive(int angle)
|
|
||||||
{
|
|
||||||
// if(ball)
|
|
||||||
// {
|
|
||||||
// if(multi_turn_angle==8)
|
|
||||||
// {
|
|
||||||
// //di
|
|
||||||
// odrive_accel_cmd(AXIS0_NODE,200,200);
|
|
||||||
// odrive_pos_cmd(AXIS0_NODE,0);
|
|
||||||
// }
|
|
||||||
// else if(multi_turn_angle==0)
|
|
||||||
// {
|
|
||||||
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
odrive_accel_cmd(AXIS0_NODE,200,200);
|
|
||||||
osDelay(2);
|
|
||||||
odrive_pos_cmd(AXIS0_NODE,angle);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
|||||||
#ifndef _SHOOT_H_
|
|
||||||
#define _SHOOT_H_
|
|
||||||
|
|
||||||
#include "GO_M8010_6_Driver.h"
|
|
||||||
#include "odrive_can.h"
|
|
||||||
#include "djiMotor.h"
|
|
||||||
#include "calc_lib.h"
|
|
||||||
#include "pid.h"
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
/* data */
|
|
||||||
GO_Motorfield* goData[GO_NUM];
|
|
||||||
//暂存目标位置
|
|
||||||
//0 left,1 right
|
|
||||||
float angleSetgo[GO_NUM];
|
|
||||||
float offestAngle[GO_NUM];//go数据
|
|
||||||
float Kp;
|
|
||||||
float Kd;
|
|
||||||
float allowRange;
|
|
||||||
}GO_SHOOT;
|
|
||||||
|
|
||||||
void shooterInit(void);
|
|
||||||
void shoot_ball(int key);
|
|
||||||
void shoot_odrive(int angle);
|
|
||||||
|
|
||||||
#endif
|
|
@ -63,10 +63,5 @@ const osThreadAttr_t attr_rc = {
|
|||||||
.stack_size = 256 * 4,
|
.stack_size = 256 * 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
//ball
|
|
||||||
const osThreadAttr_t attr_ball = {
|
|
||||||
.name = "ball",
|
|
||||||
.priority = osPriorityRealtime,
|
|
||||||
.stack_size = 256 * 4,
|
|
||||||
};
|
|
||||||
|
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
#define TASK_FREQ_MONITOR (2u)
|
#define TASK_FREQ_MONITOR (2u)
|
||||||
#define TASK_FREQ_CAN (500u)
|
#define TASK_FREQ_CAN (500u)
|
||||||
#define TASK_FREQ_AI (250u)
|
#define TASK_FREQ_AI (250u)
|
||||||
#define TASK_FREQ_BALL (500u)
|
#define TASK_FREQ_REFEREE (1000u)
|
||||||
|
|
||||||
#define TASK_INIT_DELAY_INFO (500u)
|
#define TASK_INIT_DELAY_INFO (500u)
|
||||||
#define TASK_INIT_DELAY_MONITOR (10)
|
#define TASK_INIT_DELAY_MONITOR (10)
|
||||||
@ -43,8 +43,7 @@ typedef struct {
|
|||||||
osThreadId_t dji_motor;
|
osThreadId_t dji_motor;
|
||||||
osThreadId_t shoot;
|
osThreadId_t shoot;
|
||||||
osThreadId_t go;
|
osThreadId_t go;
|
||||||
osThreadId_t nuc;
|
osThreadId_t nuc;
|
||||||
osThreadId_t ball;
|
|
||||||
} thread;
|
} thread;
|
||||||
|
|
||||||
/* 电机的反馈和输出 */
|
/* 电机的反馈和输出 */
|
||||||
@ -160,7 +159,6 @@ extern const osThreadAttr_t attr_shoot;
|
|||||||
extern const osThreadAttr_t attr_go;
|
extern const osThreadAttr_t attr_go;
|
||||||
extern const osThreadAttr_t attr_nuc;
|
extern const osThreadAttr_t attr_nuc;
|
||||||
extern const osThreadAttr_t attr_rc;
|
extern const osThreadAttr_t attr_rc;
|
||||||
extern const osThreadAttr_t attr_ball;
|
|
||||||
|
|
||||||
/* Exported functions prototypes -------------------------------------------- */
|
/* Exported functions prototypes -------------------------------------------- */
|
||||||
//声明一下任务
|
//声明一下任务
|
||||||
@ -180,6 +178,4 @@ void Task_nuc(void *argument);
|
|||||||
|
|
||||||
void Task_Rc(void *argument);
|
void Task_Rc(void *argument);
|
||||||
|
|
||||||
void Task_Ball(void *argument);
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
#include "ball_task.h"
|
|
||||||
#include "TopDefine.h"
|
|
||||||
#include "FreeRTOS.h"
|
|
||||||
#include "attrTask.h"
|
|
||||||
#include <cmsis_os2.h>
|
|
||||||
#include "remote_control.h"
|
|
||||||
#include "ball.h"
|
|
||||||
|
|
||||||
extern RC_mess_t RC_mess;
|
|
||||||
|
|
||||||
BASKETBALL basketball;
|
|
||||||
void Task_Ball(void *argument)
|
|
||||||
{
|
|
||||||
(void)argument; /* 未使用argument,消除警告 */
|
|
||||||
const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_CAN;
|
|
||||||
|
|
||||||
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计算 */
|
|
||||||
basketball.hand=0;
|
|
||||||
basketball.paw=0;
|
|
||||||
while(1)
|
|
||||||
{
|
|
||||||
|
|
||||||
handling_ball(basketball.hand, basketball.paw);
|
|
||||||
|
|
||||||
tick += delay_tick; /* 计算下一个唤醒时刻 */
|
|
||||||
osDelayUntil(tick); /* 运行结束,等待下一个周期唤醒 */
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,5 +0,0 @@
|
|||||||
#ifndef _BALL_TASK_H_
|
|
||||||
#define _BALL_TASK_H_
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
@ -14,7 +14,7 @@ extern motor_measure_t *motor_3508_data;
|
|||||||
void Task_Can(void *argument)
|
void Task_Can(void *argument)
|
||||||
{
|
{
|
||||||
(void)argument; /* 未使用argument,消除警告 */
|
(void)argument; /* 未使用argument,消除警告 */
|
||||||
const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_CAN;
|
// const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_CAN;
|
||||||
|
|
||||||
djiInit();//FIFO滤波器初始化
|
djiInit();//FIFO滤波器初始化
|
||||||
Odrive_Can_Init();
|
Odrive_Can_Init();
|
||||||
@ -29,8 +29,8 @@ void Task_Can(void *argument)
|
|||||||
//将can数据添加到消息队列
|
//将can数据添加到消息队列
|
||||||
|
|
||||||
|
|
||||||
tick += delay_tick; /* 计算下一个唤醒时刻 */
|
// tick += delay_tick; /* 计算下一个唤醒时刻 */
|
||||||
osDelayUntil(tick); /* 运行结束,等待下一个周期唤醒 */
|
// osDelayUntil(tick); /* 运行结束,等待下一个周期唤醒 */
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,6 @@
|
|||||||
|
|
||||||
extern RC_mess_t RC_mess;
|
extern RC_mess_t RC_mess;
|
||||||
extern int16_t result;
|
extern int16_t result;
|
||||||
extern int16_t t_result;
|
|
||||||
extern motor_measure_t *motor_3508_data;
|
extern motor_measure_t *motor_3508_data;
|
||||||
float vofa[8];
|
float vofa[8];
|
||||||
/**
|
/**
|
||||||
@ -25,7 +24,7 @@ void Task_Motor(void *argument)
|
|||||||
{
|
{
|
||||||
(void)argument; /* 未使用argument,消除警告 */
|
(void)argument; /* 未使用argument,消除警告 */
|
||||||
|
|
||||||
const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_CTRL_CHASSIS;
|
// const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_CTRL_CHASSIS;
|
||||||
|
|
||||||
motor_init();
|
motor_init();
|
||||||
|
|
||||||
@ -38,18 +37,18 @@ void Task_Motor(void *argument)
|
|||||||
//电机控制
|
//电机控制
|
||||||
//motor_speed(speed);
|
//motor_speed(speed);
|
||||||
m=angle*(8191/360);
|
m=angle*(8191/360);
|
||||||
// motor_pos(m);
|
motor_pos(m);
|
||||||
trigger_pos(m);
|
|
||||||
//CAN_cmd_200(result[MOTOR_UP],result[MOTOR_UP],result[MOTOR_UP],result[MOTOR_UP],&hcan1);
|
//CAN_cmd_200(result[MOTOR_UP],result[MOTOR_UP],result[MOTOR_UP],result[MOTOR_UP],&hcan1);
|
||||||
CAN_cmd_200(t_result,0,0,0,&hcan1);
|
CAN_cmd_200(result,0,0,0,&hcan1);
|
||||||
osDelay(2);
|
osDelay(2);
|
||||||
|
|
||||||
// vofa[0]=motor_3508_data->speed_rpm;
|
// vofa[0]=motor_3508_data->speed_rpm;
|
||||||
// vofa[1]=speed;
|
// vofa[1]=speed;
|
||||||
// vofa_tx_main(vofa);
|
// vofa_tx_main(vofa);
|
||||||
|
|
||||||
tick += delay_tick;
|
// tick += delay_tick;
|
||||||
osDelayUntil(tick);
|
// osDelayUntil(tick);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,14 +16,14 @@ void Task_Go(void *argument)
|
|||||||
#if GOUSE==1
|
#if GOUSE==1
|
||||||
|
|
||||||
//HAL_Delay(2000);
|
//HAL_Delay(2000);
|
||||||
// gimbalInit();
|
gimbalInit();
|
||||||
//HAL_GPIO_WritePin(ledGreen_GPIO_Port,ledGreen_Pin,GPIO_PIN_RESET);
|
//HAL_GPIO_WritePin(ledGreen_GPIO_Port,ledGreen_Pin,GPIO_PIN_RESET);
|
||||||
|
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
|
|
||||||
LED_green();
|
LED_green();
|
||||||
// gimbalFlow();
|
gimbalFlow();
|
||||||
osDelay(1);
|
osDelay(1);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
|
@ -48,10 +48,7 @@ task_runtime.thread.nuc =
|
|||||||
osThreadNew(Task_nuc, NULL, &attr_nuc);
|
osThreadNew(Task_nuc, NULL, &attr_nuc);
|
||||||
// rc
|
// rc
|
||||||
task_runtime.thread.rc =
|
task_runtime.thread.rc =
|
||||||
osThreadNew(Task_Rc, NULL, &attr_rc);
|
osThreadNew(Task_Rc, NULL, &attr_rc);
|
||||||
// ball
|
|
||||||
task_runtime.thread.ball =
|
|
||||||
osThreadNew(Task_Ball, NULL, &attr_ball);
|
|
||||||
|
|
||||||
/* 消息队列 */
|
/* 消息队列 */
|
||||||
//can
|
//can
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
#include "FreeRTOS.h"
|
#include "FreeRTOS.h"
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
#include "led.h"
|
#include "led.h"
|
||||||
#include "buzzer.h"
|
|
||||||
|
|
||||||
void Task_Led(void *argument) {
|
void Task_Led(void *argument) {
|
||||||
(void)argument; /* 未使用argument,消除警告 */
|
(void)argument; /* 未使用argument,消除警告 */
|
||||||
@ -11,10 +10,9 @@ void Task_Led(void *argument) {
|
|||||||
for (;;) {
|
for (;;) {
|
||||||
|
|
||||||
// LED_red();
|
// LED_red();
|
||||||
// LED_bule();
|
LED_bule();
|
||||||
// see_you_again();
|
|
||||||
// LED_green();
|
// LED_green();
|
||||||
|
|
||||||
// osDelay(500);
|
osDelay(500);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,11 +15,11 @@ void Task_nuc(void *argument)
|
|||||||
{
|
{
|
||||||
(void)argument; /* 未使用argument,消除警告 */
|
(void)argument; /* 未使用argument,消除警告 */
|
||||||
|
|
||||||
const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_AI;
|
// const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_AI;
|
||||||
|
|
||||||
NUC_Init(&cmd_fromnuc);
|
NUC_Init(&cmd_fromnuc);
|
||||||
|
|
||||||
uint32_t tick = osKernelGetTickCount();
|
uint32_t tick = osKernelGetTickCount();
|
||||||
|
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
@ -42,8 +42,8 @@ void Task_nuc(void *argument)
|
|||||||
// osMessageQueuePut(task_runtime.msgq.cmd.raw.nuc,&(cmd_fromnuc),0,0);
|
// osMessageQueuePut(task_runtime.msgq.cmd.raw.nuc,&(cmd_fromnuc),0,0);
|
||||||
osDelay(2);
|
osDelay(2);
|
||||||
|
|
||||||
tick += delay_tick; /* 计算下一个唤醒时刄1ķ*/
|
// tick += delay_tick; /* 计算下一个唤醒时刄1ķ*/
|
||||||
osDelayUntil(tick);
|
// osDelayUntil(tick);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,45 +3,29 @@
|
|||||||
#include "FreeRTOS.h"
|
#include "FreeRTOS.h"
|
||||||
#include "attrTask.h"
|
#include "attrTask.h"
|
||||||
#include <cmsis_os2.h>
|
#include <cmsis_os2.h>
|
||||||
#include "remote_control.h"
|
#include "shoot_task.h"
|
||||||
#include "shoot.h"
|
|
||||||
#include "odrive_shoot.h"
|
#include "odrive_shoot.h"
|
||||||
#include "read_spi.h"
|
#include "remote_control.h"
|
||||||
|
|
||||||
extern RC_mess_t RC_mess;
|
extern RC_mess_t RC_mess;
|
||||||
Encoder_t encoder;
|
const odrive_msg_t *odrive_msg1;
|
||||||
double angles;
|
|
||||||
int32_t rounds;
|
|
||||||
int angleo = 0; //发射角度
|
|
||||||
#define GO1_SHOOT 0
|
|
||||||
#define ODRIVE_SHOOT 1
|
|
||||||
|
|
||||||
void Task_Shoot(void *argument)
|
void Task_Shoot(void *argument)
|
||||||
{
|
{
|
||||||
(void)argument; /* 未使用argument,消除警告 */
|
(void)argument; /* 未使用argument,消除警告 */
|
||||||
const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_CAN;
|
// const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_CAN;
|
||||||
Encoder_Init(&encoder);
|
// odrive_CB();
|
||||||
#if GO1_SHOOT == 1
|
// uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计算 */
|
||||||
shooterInit();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计算 */
|
|
||||||
|
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
#if GO1_SHOOT == 1
|
shootStep();
|
||||||
|
|
||||||
shoot_ball(0);
|
|
||||||
|
|
||||||
#elif ODRIVE_SHOOT == 1
|
odrive_get_encode(AXIS0_NODE);
|
||||||
shootStep();
|
|
||||||
//shoot_odrive(angleo);
|
odrive_msg1 = Get_Odrive_Point();
|
||||||
#endif
|
osDelay(2);
|
||||||
// 更新编码器数据
|
|
||||||
Update_Encoder(&encoder);
|
|
||||||
|
|
||||||
tick += delay_tick; /* 计算下一个唤醒时刻 */
|
|
||||||
osDelayUntil(tick); /* 运行结束,等待下一个周期唤醒 */
|
// tick += delay_tick; /* 计算下一个唤醒时刻 */
|
||||||
|
// osDelayUntil(tick); /* 运行结束,等待下一个周期唤醒 */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
53
mycode1.ioc
53
mycode1.ioc
@ -67,9 +67,8 @@ Mcu.CPN=STM32F407IGH6
|
|||||||
Mcu.Family=STM32F4
|
Mcu.Family=STM32F4
|
||||||
Mcu.IP0=CAN1
|
Mcu.IP0=CAN1
|
||||||
Mcu.IP1=CAN2
|
Mcu.IP1=CAN2
|
||||||
Mcu.IP10=USART1
|
Mcu.IP10=USART3
|
||||||
Mcu.IP11=USART3
|
Mcu.IP11=USART6
|
||||||
Mcu.IP12=USART6
|
|
||||||
Mcu.IP2=DMA
|
Mcu.IP2=DMA
|
||||||
Mcu.IP3=FREERTOS
|
Mcu.IP3=FREERTOS
|
||||||
Mcu.IP4=NVIC
|
Mcu.IP4=NVIC
|
||||||
@ -77,8 +76,8 @@ Mcu.IP5=RCC
|
|||||||
Mcu.IP6=SPI2
|
Mcu.IP6=SPI2
|
||||||
Mcu.IP7=SYS
|
Mcu.IP7=SYS
|
||||||
Mcu.IP8=TIM1
|
Mcu.IP8=TIM1
|
||||||
Mcu.IP9=TIM4
|
Mcu.IP9=USART1
|
||||||
Mcu.IPNb=13
|
Mcu.IPNb=12
|
||||||
Mcu.Name=STM32F407I(E-G)Hx
|
Mcu.Name=STM32F407I(E-G)Hx
|
||||||
Mcu.Package=UFBGA176
|
Mcu.Package=UFBGA176
|
||||||
Mcu.Pin0=PB5
|
Mcu.Pin0=PB5
|
||||||
@ -94,26 +93,21 @@ Mcu.Pin17=PH12
|
|||||||
Mcu.Pin18=PH11
|
Mcu.Pin18=PH11
|
||||||
Mcu.Pin19=PH10
|
Mcu.Pin19=PH10
|
||||||
Mcu.Pin2=PA14
|
Mcu.Pin2=PA14
|
||||||
Mcu.Pin20=PD14
|
Mcu.Pin20=PE9
|
||||||
Mcu.Pin21=PE13
|
Mcu.Pin21=PB12
|
||||||
Mcu.Pin22=PE9
|
Mcu.Pin22=PB13
|
||||||
Mcu.Pin23=PE11
|
Mcu.Pin23=PB14
|
||||||
Mcu.Pin24=PE14
|
Mcu.Pin24=PB15
|
||||||
Mcu.Pin25=PB12
|
Mcu.Pin25=VP_FREERTOS_VS_CMSIS_V2
|
||||||
Mcu.Pin26=PB13
|
Mcu.Pin26=VP_SYS_VS_Systick
|
||||||
Mcu.Pin27=PB14
|
|
||||||
Mcu.Pin28=PB15
|
|
||||||
Mcu.Pin29=VP_FREERTOS_VS_CMSIS_V2
|
|
||||||
Mcu.Pin3=PA13
|
Mcu.Pin3=PA13
|
||||||
Mcu.Pin30=VP_SYS_VS_Systick
|
|
||||||
Mcu.Pin31=VP_TIM4_VS_ClockSourceINT
|
|
||||||
Mcu.Pin4=PB7
|
Mcu.Pin4=PB7
|
||||||
Mcu.Pin5=PB6
|
Mcu.Pin5=PB6
|
||||||
Mcu.Pin6=PD0
|
Mcu.Pin6=PD0
|
||||||
Mcu.Pin7=PC11
|
Mcu.Pin7=PC11
|
||||||
Mcu.Pin8=PC10
|
Mcu.Pin8=PC10
|
||||||
Mcu.Pin9=PI7
|
Mcu.Pin9=PI7
|
||||||
Mcu.PinsNb=32
|
Mcu.PinsNb=27
|
||||||
Mcu.ThirdPartyNb=0
|
Mcu.ThirdPartyNb=0
|
||||||
Mcu.UserConstants=
|
Mcu.UserConstants=
|
||||||
Mcu.UserName=STM32F407IGHx
|
Mcu.UserName=STM32F407IGHx
|
||||||
@ -180,22 +174,6 @@ PD0.Signal=CAN1_RX
|
|||||||
PD1.Locked=true
|
PD1.Locked=true
|
||||||
PD1.Mode=CAN_Activate
|
PD1.Mode=CAN_Activate
|
||||||
PD1.Signal=CAN1_TX
|
PD1.Signal=CAN1_TX
|
||||||
PD14.GPIOParameters=GPIO_Label
|
|
||||||
PD14.GPIO_Label=buzzer
|
|
||||||
PD14.Locked=true
|
|
||||||
PD14.Signal=S_TIM4_CH3
|
|
||||||
PE11.GPIOParameters=GPIO_Label
|
|
||||||
PE11.GPIO_Label=key
|
|
||||||
PE11.Locked=true
|
|
||||||
PE11.Signal=GPIO_Output
|
|
||||||
PE13.GPIOParameters=GPIO_Label
|
|
||||||
PE13.GPIO_Label=down
|
|
||||||
PE13.Locked=true
|
|
||||||
PE13.Signal=GPIO_Output
|
|
||||||
PE14.GPIOParameters=GPIO_Label
|
|
||||||
PE14.GPIO_Label=paw
|
|
||||||
PE14.Locked=true
|
|
||||||
PE14.Signal=GPIO_Output
|
|
||||||
PE9.Locked=true
|
PE9.Locked=true
|
||||||
PE9.Signal=S_TIM1_CH1
|
PE9.Signal=S_TIM1_CH1
|
||||||
PG14.Mode=Asynchronous
|
PG14.Mode=Asynchronous
|
||||||
@ -294,8 +272,6 @@ RCC.VCOOutputFreq_Value=336000000
|
|||||||
RCC.VcooutputI2S=192000000
|
RCC.VcooutputI2S=192000000
|
||||||
SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1
|
SH.S_TIM1_CH1.0=TIM1_CH1,PWM Generation1 CH1
|
||||||
SH.S_TIM1_CH1.ConfNb=1
|
SH.S_TIM1_CH1.ConfNb=1
|
||||||
SH.S_TIM4_CH3.0=TIM4_CH3,PWM Generation3 CH3
|
|
||||||
SH.S_TIM4_CH3.ConfNb=1
|
|
||||||
SPI2.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_32
|
SPI2.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_32
|
||||||
SPI2.CLKPhase=SPI_PHASE_2EDGE
|
SPI2.CLKPhase=SPI_PHASE_2EDGE
|
||||||
SPI2.CalculateBaudRate=1.3125 MBits/s
|
SPI2.CalculateBaudRate=1.3125 MBits/s
|
||||||
@ -309,9 +285,6 @@ TIM1.IPParameters=Channel-PWM Generation1 CH1,Prescaler,Period,Pulse-PWM Generat
|
|||||||
TIM1.Period=20000-1
|
TIM1.Period=20000-1
|
||||||
TIM1.Prescaler=168-1
|
TIM1.Prescaler=168-1
|
||||||
TIM1.Pulse-PWM\ Generation1\ CH1=2000
|
TIM1.Pulse-PWM\ Generation1\ CH1=2000
|
||||||
TIM4.Channel-PWM\ Generation3\ CH3=TIM_CHANNEL_3
|
|
||||||
TIM4.IPParameters=Channel-PWM Generation3 CH3,Period
|
|
||||||
TIM4.Period=20999
|
|
||||||
USART1.BaudRate=115200
|
USART1.BaudRate=115200
|
||||||
USART1.IPParameters=VirtualMode,BaudRate
|
USART1.IPParameters=VirtualMode,BaudRate
|
||||||
USART1.VirtualMode=VM_ASYNC
|
USART1.VirtualMode=VM_ASYNC
|
||||||
@ -326,7 +299,5 @@ VP_FREERTOS_VS_CMSIS_V2.Mode=CMSIS_V2
|
|||||||
VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2
|
VP_FREERTOS_VS_CMSIS_V2.Signal=FREERTOS_VS_CMSIS_V2
|
||||||
VP_SYS_VS_Systick.Mode=SysTick
|
VP_SYS_VS_Systick.Mode=SysTick
|
||||||
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
|
VP_SYS_VS_Systick.Signal=SYS_VS_Systick
|
||||||
VP_TIM4_VS_ClockSourceINT.Mode=Internal
|
|
||||||
VP_TIM4_VS_ClockSourceINT.Signal=TIM4_VS_ClockSourceINT
|
|
||||||
board=custom
|
board=custom
|
||||||
rtos.0.ip=FREERTOS
|
rtos.0.ip=FREERTOS
|
||||||
|
Loading…
Reference in New Issue
Block a user