添加均值滤波,修改HT电机控制方式,添加了一些文档

This commit is contained in:
NeoZng
2023-05-29 09:48:07 +08:00
parent 7403943814
commit ff5028036a
14 changed files with 272 additions and 125 deletions

View File

@@ -32,6 +32,7 @@
#include "master_process.h"
#include "daemon.h"
#include "robot.h"
#include "HT04.h"
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
@@ -73,13 +74,13 @@ void StartROBOTTASK(void const *argument);
void StartUITASK(void const *argument);
/* USER CODE END FunctionPrototypes */
void StartDefaultTask(void const * argument);
void StartDefaultTask(void const *argument);
extern void MX_USB_DEVICE_Init(void);
void MX_FREERTOS_Init(void); /* (MISRA C 2004 rule 8.1) */
/* GetIdleTaskMemory prototype (linked to static allocation support) */
void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize );
void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize);
/* USER CODE BEGIN GET_IDLE_TASK_MEMORY */
static StaticTask_t xIdleTaskTCBBuffer;
@@ -95,11 +96,12 @@ void vApplicationGetIdleTaskMemory(StaticTask_t **ppxIdleTaskTCBBuffer, StackTyp
/* USER CODE END GET_IDLE_TASK_MEMORY */
/**
* @brief FreeRTOS initialization
* @param None
* @retval None
*/
void MX_FREERTOS_Init(void) {
* @brief FreeRTOS initialization
* @param None
* @retval None
*/
void MX_FREERTOS_Init(void)
{
/* USER CODE BEGIN Init */
/* USER CODE END Init */
@@ -127,8 +129,9 @@ void MX_FREERTOS_Init(void) {
/* USER CODE BEGIN RTOS_THREADS */
/* add threads, ... */
osThreadDef(instask, StartINSTASK, osPriorityNormal, 0, 1024);
insTaskHandle = osThreadCreate(osThread(instask), NULL);
osThreadDef(instask, StartINSTASK, osPriorityAboveNormal, 0, 1024);
insTaskHandle = osThreadCreate(osThread(instask), NULL); // 由于是阻塞读取传感器,为姿态解算设置较高优先级,确保以1khz的频率执行
// 后续修改为读取传感器数据准备好的中断处理,
osThreadDef(motortask, StartMOTORTASK, osPriorityNormal, 0, 256);
motorTaskHandle = osThreadCreate(osThread(motortask), NULL);
@@ -143,7 +146,6 @@ void MX_FREERTOS_Init(void) {
defaultTaskHandle = osThreadCreate(osThread(uitask), NULL);
/* USER CODE END RTOS_THREADS */
}
/* USER CODE BEGIN Header_StartDefaultTask */
@@ -153,12 +155,12 @@ void MX_FREERTOS_Init(void) {
* @retval None
*/
/* USER CODE END Header_StartDefaultTask */
void StartDefaultTask(void const * argument)
void StartDefaultTask(void const *argument)
{
/* init code for USB_DEVICE */
MX_USB_DEVICE_Init();
/* USER CODE BEGIN StartDefaultTask */
vTaskDelete( NULL );
vTaskDelete(NULL);
/* USER CODE END StartDefaultTask */
}
@@ -170,13 +172,15 @@ void StartINSTASK(void const *argument)
{
// 1kHz
INS_Task();
VisionSend(); // 解算完成后发送视觉数<E8A789><EFBFBD>?
VisionSend(); // 解算完成后发送视觉数<E8A789>?
osDelay(1);
}
}
void StartMOTORTASK(void const *argument)
{
// 若使用HT电机则取消本行注释
HTMotorControlInit();
while (1)
{
// 500Hz