| @@ -63,6 +63,16 @@ extern uint32_t g_last_freq; // 上一次计算的频率,用于PLSR_Calculate_ | |||||
| #define PLSR_PWM_PIN GPIO_PIN_6 // PF6 - TIM10_CH1 | #define PLSR_PWM_PIN GPIO_PIN_6 // PF6 - TIM10_CH1 | ||||
| #define PLSR_PWM_PORT GPIOF | #define PLSR_PWM_PORT GPIOF | ||||
| // 默认参数定义 | |||||
| #define PLSR_DEFAULT_STEP_FREQ_US 1000 // 默认TIM6更新频率1000微秒(1ms) | |||||
| #define PLSR_DEFAULT_ACCEL_TIME_MS 100 // 默认加速时间100ms | |||||
| #define PLSR_DEFAULT_DECEL_TIME_MS 100 // 默认减速时间100ms | |||||
| #define PLSR_DEFAULT_ACT_TIME_MS 200 // 默认ACT时间200ms | |||||
| #define PLSR_DEFAULT_WAIT_TIME_MS 200 // 默认等待时间200ms | |||||
| #define PLSR_DEFAULT_START_SECTION 0 // 默认起始段编号 | |||||
| #define PLSR_TASK_CHECK_INTERVAL 100 // 每100个脉冲通知任务一次 | |||||
| // TIM2硬件计数器已删除 - 改用TIM10中断计数 | // TIM2硬件计数器已删除 - 改用TIM10中断计数 | ||||
| // 等待条件类型枚举 | // 等待条件类型枚举 | ||||
| @@ -171,22 +181,19 @@ typedef struct { | |||||
| // 运行状态参数 | // 运行状态参数 | ||||
| PLSR_RunState_t run_state; // 当前运行状态 | PLSR_RunState_t run_state; // 当前运行状态 | ||||
| // 三部分脉冲计数(重新定义用途) | |||||
| // 三部分脉冲计数 | |||||
| int32_t accel_pulse_count; // 第一部分脉冲数(可能是加速、减速或匀速) | int32_t accel_pulse_count; // 第一部分脉冲数(可能是加速、减速或匀速) | ||||
| int32_t const_pulse_count; // 第二部分脉冲数(匀速) | int32_t const_pulse_count; // 第二部分脉冲数(匀速) | ||||
| int32_t decel_pulse_count; // 第三部分脉冲数(减速到0) | int32_t decel_pulse_count; // 第三部分脉冲数(减速到0) | ||||
| // 新增:三部分状态标识 | |||||
| PLSR_RunState_t part1_state; // 第一部分状态(ACCEL/DECEL/CONST) | PLSR_RunState_t part1_state; // 第一部分状态(ACCEL/DECEL/CONST) | ||||
| PLSR_RunState_t part2_state; // 第二部分状态(通常是CONST) | PLSR_RunState_t part2_state; // 第二部分状态(通常是CONST) | ||||
| PLSR_RunState_t part3_state; // 第三部分状态(通常是DECEL) | PLSR_RunState_t part3_state; // 第三部分状态(通常是DECEL) | ||||
| // 新增:三部分目标频率 | |||||
| uint32_t part1_target_freq; // 第一部分目标频率 | uint32_t part1_target_freq; // 第一部分目标频率 | ||||
| uint32_t part2_target_freq; // 第二部分目标频率(匀速频率) | uint32_t part2_target_freq; // 第二部分目标频率(匀速频率) | ||||
| uint32_t part3_target_freq; // 第三部分目标频率(通常是0) | uint32_t part3_target_freq; // 第三部分目标频率(通常是0) | ||||
| // 新增:当前执行部分 | |||||
| uint8_t current_part; // 当前执行部分:1-第一部分,2-第二部分,3-第三部分 | uint8_t current_part; // 当前执行部分:1-第一部分,2-第二部分,3-第三部分 | ||||
| uint32_t freq_step; // 频率步长 | uint32_t freq_step; // 频率步长 | ||||
| @@ -207,21 +214,12 @@ typedef struct { | |||||
| // 三部分执行状态枚举 | // 三部分执行状态枚举 | ||||
| typedef enum { | typedef enum { | ||||
| PLSR_PART_1 = 1, // 执行第一部分 | |||||
| PLSR_PART_2 = 2, // 执行第二部分 | |||||
| PLSR_PART_3 = 3, // 执行第三部分 | |||||
| PLSR_PART_1 = 1, ///< 执行第一部分 | |||||
| PLSR_PART_2 = 2, ///< 执行第二部分 | |||||
| PLSR_PART_3 = 3, ///< 执行第三部分 | |||||
| PLSR_PART_COMPLETE = 4 // 三部分全部完成 | PLSR_PART_COMPLETE = 4 // 三部分全部完成 | ||||
| } PLSR_PartState_t; | } PLSR_PartState_t; | ||||
| // 默认参数定义 | |||||
| #define PLSR_DEFAULT_STEP_FREQ_US 1000 // 默认TIM6更新频率1000微秒(1ms) | |||||
| #define PLSR_DEFAULT_ACCEL_TIME_MS 100 // 默认加速时间100ms | |||||
| #define PLSR_DEFAULT_DECEL_TIME_MS 100 // 默认减速时间100ms | |||||
| #define PLSR_DEFAULT_ACT_TIME_MS 200 // 默认ACT时间200ms | |||||
| #define PLSR_DEFAULT_WAIT_TIME_MS 200 // 默认等待时间200ms | |||||
| #define PLSR_DEFAULT_START_SECTION 0 // 默认起始段编号 | |||||
| #define PLSR_TASK_CHECK_INTERVAL 100 // 每100个脉冲通知任务一次 | |||||
| // 基础PWM函数 | // 基础PWM函数 | ||||
| // ==================== PWM控制函数 ==================== | // ==================== PWM控制函数 ==================== | ||||
| void PLSR_PWM_Init(void); | void PLSR_PWM_Init(void); | ||||
| @@ -230,7 +228,6 @@ void PLSR_PWM_Stop(void); | |||||
| void PLSR_PWM_SetFrequency(uint32_t frequency); | void PLSR_PWM_SetFrequency(uint32_t frequency); | ||||
| // ==================== PLSR路径控制函数 ==================== | // ==================== PLSR路径控制函数 ==================== | ||||
| void PLSR_Route_Init(PLSR_RouteConfig_t* route); //<路径初始化 | |||||
| void PLSR_Route_Set(PLSR_RouteConfig_t* route); //<用户修改完参数后需要调用一次该函数,进行数据更新 | void PLSR_Route_Set(PLSR_RouteConfig_t* route); //<用户修改完参数后需要调用一次该函数,进行数据更新 | ||||
| void PLSR_Route_Start(PLSR_RouteConfig_t* route); //<路径开始 | void PLSR_Route_Start(PLSR_RouteConfig_t* route); //<路径开始 | ||||
| void PLSR_Route_Stop(PLSR_RouteConfig_t* route); //<路径停止 | void PLSR_Route_Stop(PLSR_RouteConfig_t* route); //<路径停止 | ||||
| @@ -246,8 +243,8 @@ void PLSR_SetupThreePartExecution(PLSR_RouteConfig_t* route); //<设置三部分 | |||||
| // ==================== PLSR加减速算法函数 ==================== | // ==================== PLSR加减速算法函数 ==================== | ||||
| void PLSR_Accel_Process(PLSR_RouteConfig_t* route); //<加减速执行函数(新的直线加减速) | void PLSR_Accel_Process(PLSR_RouteConfig_t* route); //<加减速执行函数(新的直线加减速) | ||||
| void PLSR_Accel_UpdateRates(PLSR_RouteConfig_t* route); //<更新加减速度 | void PLSR_Accel_UpdateRates(PLSR_RouteConfig_t* route); //<更新加减速度 | ||||
| void PLSR_Accel_SetDefaultParams(PLSR_RouteConfig_t* route, uint32_t accel_time_ms, uint32_t decel_time_ms); //<设置默认加减速参数 | |||||
| uint32_t PLSR_Calculate_FreqByPosition(PLSR_RouteConfig_t* route, uint8_t is_accel); //<根据当前脉冲位置计算频率 | uint32_t PLSR_Calculate_FreqByPosition(PLSR_RouteConfig_t* route, uint8_t is_accel); //<根据当前脉冲位置计算频率 | ||||
| uint32_t PLSR_Calculate_FreqByPosition_Sine(PLSR_RouteConfig_t* route, uint8_t is_accel); //<正弦加减速频率计算 | |||||
| uint32_t integer_sqrt_64(uint64_t x); //<64位整数开平方函数 | uint32_t integer_sqrt_64(uint64_t x); //<64位整数开平方函数 | ||||
| // ==================== PLSR等待条件处理函数 ==================== | // ==================== PLSR等待条件处理函数 ==================== | ||||
| @@ -69,6 +69,50 @@ void SystemClock_Config(void); | |||||
| /* Private user code ---------------------------------------------------------*/ | /* Private user code ---------------------------------------------------------*/ | ||||
| /* USER CODE BEGIN 0 */ | /* USER CODE BEGIN 0 */ | ||||
| /** | |||||
| * @brief System Clock Configuration | |||||
| * @retval None | |||||
| */ | |||||
| void SystemClock_Config(void) | |||||
| { | |||||
| RCC_OscInitTypeDef RCC_OscInitStruct = {0}; | |||||
| RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; | |||||
| /** Configure the main internal regulator output voltage | |||||
| */ | |||||
| __HAL_RCC_PWR_CLK_ENABLE(); | |||||
| __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); | |||||
| /** Initializes the RCC Oscillators according to the specified parameters | |||||
| * in the RCC_OscInitTypeDef structure. | |||||
| */ | |||||
| RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; | |||||
| RCC_OscInitStruct.HSEState = RCC_HSE_ON; | |||||
| RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; | |||||
| RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; | |||||
| RCC_OscInitStruct.PLL.PLLM = 6; | |||||
| RCC_OscInitStruct.PLL.PLLN = 168; | |||||
| RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; | |||||
| RCC_OscInitStruct.PLL.PLLQ = 4; | |||||
| if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) | |||||
| { | |||||
| Error_Handler(); | |||||
| } | |||||
| /** Initializes the CPU, AHB and APB buses clocks | |||||
| */ | |||||
| RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK | |||||
| |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; | |||||
| RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; | |||||
| RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; | |||||
| RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; | |||||
| RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; | |||||
| if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) | |||||
| { | |||||
| Error_Handler(); | |||||
| } | |||||
| } | |||||
| /* USER CODE END 0 */ | /* USER CODE END 0 */ | ||||
| @@ -119,67 +163,16 @@ int main(void) | |||||
| (void *)0, | (void *)0, | ||||
| OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); | OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); | ||||
| if (err != OS_ERR_NONE) { | |||||
| /* 任务创建失败处理 */ | |||||
| if (err != OS_ERR_NONE) | |||||
| { | |||||
| while(1); | while(1); | ||||
| } | } | ||||
| // /* 启动uC/OS-II */ | |||||
| OSStart(); | OSStart(); | ||||
| /* USER CODE END 2 */ | |||||
| /* Infinite loop */ | |||||
| /* USER CODE BEGIN WHILE */ | |||||
| while (1) | while (1) | ||||
| { | { | ||||
| /* USER CODE END WHILE */ | |||||
| /* USER CODE BEGIN 3 */ | |||||
| } | } | ||||
| /* USER CODE END 3 */ | |||||
| } | |||||
| /** | |||||
| * @brief System Clock Configuration | |||||
| * @retval None | |||||
| */ | |||||
| void SystemClock_Config(void) | |||||
| { | |||||
| RCC_OscInitTypeDef RCC_OscInitStruct = {0}; | |||||
| RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; | |||||
| /** Configure the main internal regulator output voltage | |||||
| */ | |||||
| __HAL_RCC_PWR_CLK_ENABLE(); | |||||
| __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); | |||||
| /** Initializes the RCC Oscillators according to the specified parameters | |||||
| * in the RCC_OscInitTypeDef structure. | |||||
| */ | |||||
| RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; | |||||
| RCC_OscInitStruct.HSEState = RCC_HSE_ON; | |||||
| RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; | |||||
| RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; | |||||
| RCC_OscInitStruct.PLL.PLLM = 6; | |||||
| RCC_OscInitStruct.PLL.PLLN = 168; | |||||
| RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; | |||||
| RCC_OscInitStruct.PLL.PLLQ = 4; | |||||
| if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) | |||||
| { | |||||
| Error_Handler(); | |||||
| } | |||||
| /** Initializes the CPU, AHB and APB buses clocks | |||||
| */ | |||||
| RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK | |||||
| |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; | |||||
| RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; | |||||
| RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; | |||||
| RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; | |||||
| RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; | |||||
| if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK) | |||||
| { | |||||
| Error_Handler(); | |||||
| } | |||||
| } | } | ||||
| /* USER CODE BEGIN 4 */ | /* USER CODE BEGIN 4 */ | ||||
| @@ -253,8 +246,6 @@ static void MODBUSTask(void *p_arg) | |||||
| Modbus_Process(); | Modbus_Process(); | ||||
| OSTimeDlyHMSM(0, 0, 0, 1); /* 延时10ms */ | OSTimeDlyHMSM(0, 0, 0, 1); /* 延时10ms */ | ||||
| } | } | ||||
| } | } | ||||
| static void KeyTask(void *p_arg) | static void KeyTask(void *p_arg) | ||||
| { | { | ||||
| @@ -263,7 +254,6 @@ static void KeyTask(void *p_arg) | |||||
| OSTimeDly(2000); //<等待硬件完全初始化. | OSTimeDly(2000); //<等待硬件完全初始化. | ||||
| uint8_t startflag = 0; | uint8_t startflag = 0; | ||||
| // 初始化PLSR路径配置 | // 初始化PLSR路径配置 | ||||
| PLSR_Route_Init(&g_plsr_route); | |||||
| // PLSR_Route_Start(&g_plsr_route); | // PLSR_Route_Start(&g_plsr_route); | ||||
| while (1) | while (1) | ||||
| { | { | ||||
| @@ -276,7 +266,6 @@ static void KeyTask(void *p_arg) | |||||
| { | { | ||||
| if(startflag == 1) | if(startflag == 1) | ||||
| { | { | ||||
| PLSR_Route_Init(&g_plsr_route); | |||||
| PLSR_Route_Start(&g_plsr_route); | PLSR_Route_Start(&g_plsr_route); | ||||
| startflag = 0; | startflag = 0; | ||||
| } | } | ||||
| @@ -288,8 +277,6 @@ static void KeyTask(void *p_arg) | |||||
| /* USER CODE END 4 */ | /* USER CODE END 4 */ | ||||
| // HAL_TIM_PeriodElapsedCallback函数已移至timer.c文件中统一管理 | |||||
| /** | /** | ||||
| * @brief This function is executed in case of error occurrence. | * @brief This function is executed in case of error occurrence. | ||||
| * @retval None | * @retval None | ||||
| @@ -64,14 +64,12 @@ void PLSR_Wait_StartTimer(PLSR_RouteConfig_t* route) | |||||
| s_wait_time_target = wait_cond->wait_time_ms; | s_wait_time_target = wait_cond->wait_time_ms; | ||||
| s_wait_time_counter = 0; | s_wait_time_counter = 0; | ||||
| s_wait_time_flag = 0; | s_wait_time_flag = 0; | ||||
| //PLSR_TIM6_Start(); | |||||
| break; | break; | ||||
| case PLSR_WAIT_ACT_TIME: | case PLSR_WAIT_ACT_TIME: | ||||
| s_act_time_target = wait_cond->act_time_ms; | s_act_time_target = wait_cond->act_time_ms; | ||||
| s_act_time_counter = 0; | s_act_time_counter = 0; | ||||
| s_act_time_flag = 0; | s_act_time_flag = 0; | ||||
| //PLSR_TIM6_Start(); | |||||
| break; | break; | ||||
| case PLSR_WAIT_CONDITION: | case PLSR_WAIT_CONDITION: | ||||
| @@ -756,105 +754,21 @@ static void PLSR_CalculateTimerParams(uint32_t frequency, uint16_t* prescaler, u | |||||
| if (frequency < PLSR_PWM_FREQ_MIN) frequency = PLSR_PWM_FREQ_MIN; | if (frequency < PLSR_PWM_FREQ_MIN) frequency = PLSR_PWM_FREQ_MIN; | ||||
| if (frequency > PLSR_PWM_FREQ_MAX) frequency = PLSR_PWM_FREQ_MAX; | if (frequency > PLSR_PWM_FREQ_MAX) frequency = PLSR_PWM_FREQ_MAX; | ||||
| uint32_t psc; | |||||
| uint32_t arr; | |||||
| uint32_t f = frequency; | |||||
| const uint32_t timer_clock = 168000000UL; // 定时器时钟 | |||||
| uint32_t divider = (timer_clock + frequency / 2) / frequency; // 四舍五入 | |||||
| // PLSR_Calc_TimerParams((uint32_t)(f_hz + 0.5f), &psc, &arr); | |||||
| uint32_t timer_clock = 168000000; | |||||
| psc = 1; | |||||
| while (timer_clock / (psc + 1) / f > 65535) { | |||||
| psc++; | |||||
| if (psc > 0XFFFF) psc = 0XFFFF; | |||||
| } | |||||
| arr = (timer_clock / (psc + 1)) / f - 1; | |||||
| if (arr < 2) arr = 2; | |||||
| *prescaler = psc; | |||||
| *period = arr; | |||||
| if (divider < 2) divider = 2; // 至少 2 | |||||
| // // STM32F4系列定时器时钟频率(APB1定时器通常为84MHz,APB2定时器为168MHz) | |||||
| // // 这里使用168MHz,适用于APB2上的高速定时器(如TIM1、TIM8等) | |||||
| // uint32_t timer_clock = 168000000; | |||||
| // // 定时器频率计算原理: | |||||
| // // 输出频率 = 定时器时钟频率 / ((预分频器 + 1) * (自动重装载值 + 1)) | |||||
| // // 因此:(预分频器 + 1) * (自动重装载值 + 1) = 定时器时钟频率 / 目标频率 | |||||
| // // 频率为0时的异常处理 | |||||
| // if (frequency == 0) { | |||||
| // *prescaler = 65535; // 最大预分频器 | |||||
| // *period = 65535; // 最大周期,输出最低频率 | |||||
| // return; | |||||
| // } | |||||
| // // 频率过高时的处理(超过定时器时钟频率) | |||||
| // if (frequency > timer_clock) { | |||||
| // *prescaler = 0; // 最小预分频器 | |||||
| // *period = 0; // 最小周期,输出最高频率 | |||||
| // return; | |||||
| // } | |||||
| // // 计算总的计数值:定时器时钟频率除以目标频率 | |||||
| // uint64_t total_count = (uint64_t)timer_clock / frequency; | |||||
| // // 如果总计数值超出范围,直接设置为最低频率 | |||||
| // if (total_count > (uint64_t)65536 * 65536) { | |||||
| // *prescaler = 65535; | |||||
| // *period = 65535; | |||||
| // return; | |||||
| // } | |||||
| // // 优化搜索策略:寻找最佳的预分频器和自动重装载值组合 | |||||
| // // 目标:找到误差最小且分辨率最高的组合 | |||||
| // uint32_t best_prescaler = 65535; | |||||
| // uint32_t best_period = 65535; | |||||
| // uint32_t min_error = UINT32_MAX; | |||||
| // // 计算合理的搜索范围,避免无效遍历 | |||||
| // uint32_t max_psc = (total_count > 65535) ? 65535 : (uint32_t)total_count; | |||||
| // uint32_t min_psc = (total_count + 65535) / 65536; // 确保ARR不超过65535 | |||||
| // if (min_psc == 0) min_psc = 1; | |||||
| // // 遍历预分频器值,寻找最佳组合 | |||||
| // for (uint32_t psc = min_psc; psc <= max_psc; psc++) { | |||||
| // // 计算对应的自动重装载值(四舍五入) | |||||
| // uint32_t arr = (uint32_t)((total_count + psc/2) / psc); | |||||
| // // 检查自动重装载值是否在有效范围内 | |||||
| // if (arr >= 1 && arr <= 65536) { | |||||
| // // 计算实际输出频率和误差 | |||||
| // uint32_t actual_total = psc * arr; | |||||
| // uint32_t actual_freq = timer_clock / actual_total; | |||||
| // uint32_t error = (actual_freq > frequency) ? | |||||
| // (actual_freq - frequency) : (frequency - actual_freq); | |||||
| // // 选择误差最小的组合,误差相同时选择分辨率更高的(ARR更大) | |||||
| // if (error < min_error || (error == min_error && arr > best_period + 1)) { | |||||
| // min_error = error; | |||||
| // best_prescaler = psc - 1; // 转换为寄存器值 | |||||
| // best_period = arr - 1; // 转换为寄存器值 | |||||
| // // 如果找到精确匹配,直接返回 | |||||
| // if (error == 0) { | |||||
| // *prescaler = best_prescaler; | |||||
| // *period = best_period; | |||||
| // return; | |||||
| // } | |||||
| // } | |||||
| // } | |||||
| // } | |||||
| // // 返回找到的最佳组合 | |||||
| // *prescaler = best_prescaler; | |||||
| // *period = best_period; | |||||
| // // 如果没有找到合理的组合,使用默认的1kHz配置 | |||||
| // if (min_error == UINT32_MAX) { | |||||
| // // 预分频器 = 167 (实际分频168),自动重装载 = 999 (实际计数1000) | |||||
| // // 输出频率 = 168MHz / (168 * 1000) = 1kHz | |||||
| // *prescaler = 167; // 168MHz / 168 = 1MHz | |||||
| // *period = 999; // 1MHz / 1000 = 1kHz | |||||
| // } | |||||
| // 限制 ARR <= 65535 | |||||
| uint32_t psc = (divider + 65535) / 65536; // 向上取整 | |||||
| if (psc > 0xFFFF) psc = 0xFFFF; | |||||
| uint32_t arr = (divider / psc) - 1; | |||||
| if (arr < 1) arr = 1; | |||||
| if (arr > 65535) arr = 65535; | |||||
| *prescaler = (uint16_t)(psc - 1); | |||||
| *period = arr; | |||||
| } | } | ||||
| @@ -1231,7 +1145,6 @@ void Calculate_PluseNum(PLSR_RouteConfig_t *route) | |||||
| int32_t part2_pulse_num = 0; // 第二部分脉冲数 | int32_t part2_pulse_num = 0; // 第二部分脉冲数 | ||||
| int32_t part3_pulse_num = 0; // 第三部分脉冲数 | int32_t part3_pulse_num = 0; // 第三部分脉冲数 | ||||
| uint32_t part1_time = 0; // 第一部分时间(ms) | uint32_t part1_time = 0; // 第一部分时间(ms) | ||||
| uint32_t part2_time = 0; // 第二部分时间(ms) | |||||
| uint32_t part3_time = 0; // 第三部分时间(ms) | uint32_t part3_time = 0; // 第三部分时间(ms) | ||||
| // 参数有效性检查 | // 参数有效性检查 | ||||
| @@ -1248,7 +1161,6 @@ void Calculate_PluseNum(PLSR_RouteConfig_t *route) | |||||
| { | { | ||||
| uint32_t v0 = route->current_freq; // 起始频率 | uint32_t v0 = route->current_freq; // 起始频率 | ||||
| uint32_t vt = current_section->target_freq; // 期望目标频率 | uint32_t vt = current_section->target_freq; // 期望目标频率 | ||||
| uint32_t vf = 0; // 最终频率(必须为0) | |||||
| uint32_t a = route->accel_rate; // 加速度 | uint32_t a = route->accel_rate; // 加速度 | ||||
| uint32_t d = route->decel_rate; // 减速度 | uint32_t d = route->decel_rate; // 减速度 | ||||
| @@ -1262,7 +1174,7 @@ void Calculate_PluseNum(PLSR_RouteConfig_t *route) | |||||
| // 三部分运动规划: | // 三部分运动规划: | ||||
| // 第一部分:从v0到vt(加速或减速或保持) | // 第一部分:从v0到vt(加速或减速或保持) | ||||
| // 第二部分:在vt保持匀速 | // 第二部分:在vt保持匀速 | ||||
| // 第三部分:从vt减速到0 | |||||
| // 第三部分:从vt减速到route->end_freq | |||||
| // 计算第一部分:v0 -> vt | // 计算第一部分:v0 -> vt | ||||
| PLSR_RunState_t part1_state = PLSR_STATE_CONST; // 默认匀速 | PLSR_RunState_t part1_state = PLSR_STATE_CONST; // 默认匀速 | ||||
| @@ -1320,12 +1232,7 @@ void Calculate_PluseNum(PLSR_RouteConfig_t *route) | |||||
| if (used_pulses < total_pulses) { | if (used_pulses < total_pulses) { | ||||
| // 有剩余脉冲用于匀速阶段 | // 有剩余脉冲用于匀速阶段 | ||||
| part2_pulse_num = total_pulses - used_pulses; | |||||
| // 计算匀速时间 | |||||
| if (vt > 0) { | |||||
| part2_time = (part2_pulse_num * 1000) / vt; | |||||
| } | |||||
| part2_pulse_num = total_pulses - used_pulses; | |||||
| } | } | ||||
| else if (used_pulses > total_pulses) { | else if (used_pulses > total_pulses) { | ||||
| // 脉冲数不足,需要调整运动参数 | // 脉冲数不足,需要调整运动参数 | ||||
| @@ -1431,15 +1338,13 @@ void Calculate_PluseNum(PLSR_RouteConfig_t *route) | |||||
| else { | else { | ||||
| part2_pulse_num = 0; | part2_pulse_num = 0; | ||||
| } | } | ||||
| // 保存三个部分的状态和脉冲计数到结构体 | |||||
| // 使用现有的字段来存储三个部分的信息 | |||||
| // 第一部分 | // 第一部分 | ||||
| if (part1_state == PLSR_STATE_ACCEL) { | |||||
| if (part1_state == PLSR_STATE_ACCEL) | |||||
| { | |||||
| route->accel_pulse_count = part1_pulse_num; | route->accel_pulse_count = part1_pulse_num; | ||||
| } else { | |||||
| } | |||||
| else | |||||
| { | |||||
| route->accel_pulse_count = (part1_state == PLSR_STATE_DECEL) ? part1_pulse_num : 0; | route->accel_pulse_count = (part1_state == PLSR_STATE_DECEL) ? part1_pulse_num : 0; | ||||
| } | } | ||||
| @@ -1449,14 +1354,7 @@ void Calculate_PluseNum(PLSR_RouteConfig_t *route) | |||||
| // 第三部分(减速到0) | // 第三部分(减速到0) | ||||
| route->decel_pulse_count = part3_pulse_num; | route->decel_pulse_count = part3_pulse_num; | ||||
| // uint8_t d_count = 0; | |||||
| // if(route->accel_pulse_count > 0) d_count++; | |||||
| // if(route->decel_pulse_count > 0) d_count++; | |||||
| // if(route->const_pulse_count > 0) d_count++; | |||||
| // if(route->const_pulse_count >= 3 ) | |||||
| // route->const_pulse_count -= d_count; | |||||
| // else | |||||
| if(route->accel_pulse_count > 1) | |||||
| route->accel_pulse_count -= 1; | route->accel_pulse_count -= 1; | ||||
| route->part1_state = part1_state; // 保存第一部分状态 | route->part1_state = part1_state; // 保存第一部分状态 | ||||
| @@ -1699,57 +1597,42 @@ void PLSR_Route_Set(PLSR_RouteConfig_t* route) | |||||
| } | } | ||||
| } | } | ||||
| void PLSR_Route_Init(PLSR_RouteConfig_t* route) | |||||
| /** | |||||
| * @brief 启动PLSR路径执行 | |||||
| * @param route 路径控制结构体指针 | |||||
| * @note 如果起始频率为0,PWM不会启动,适用于等待外部触发的场景 | |||||
| */ | |||||
| void PLSR_Route_Start(PLSR_RouteConfig_t* route) | |||||
| { | { | ||||
| // 参数有效性检查 | // 参数有效性检查 | ||||
| if (route == NULL) return; | if (route == NULL) return; | ||||
| // 状态检查 - 避免重复启动 | |||||
| if (route->route_state == PLSR_ROUTE_RUNNING) | |||||
| return; | |||||
| // 初始化路径基本参数 | // 初始化路径基本参数 | ||||
| route->route_state = PLSR_ROUTE_IDLE; // 路径状态:空闲 | route->route_state = PLSR_ROUTE_IDLE; // 路径状态:空闲 | ||||
| route->current_freq = 0; // 当前频率:0Hz | route->current_freq = 0; // 当前频率:0Hz | ||||
| route->target_freq = 0; // 目标频率:0Hz | route->target_freq = 0; // 目标频率:0Hz | ||||
| route->initial_freq = 0; // 加减速初始频率:0Hz | route->initial_freq = 0; // 加减速初始频率:0Hz | ||||
| route->direction = PLSR_DIR_FORWARD; // 运行方向:默认正向 | |||||
| // 初始化新增的加减速参数 | |||||
| route->default_freq = 1000; // 默认频率:1000Hz | |||||
| route->default_accel_time_ms = 1000; // 默认加速时间:1000ms | |||||
| route->default_decel_time_ms = 1000; // 默认减速时间:1000ms | |||||
| // 计算默认加减速度 | |||||
| PLSR_Accel_UpdateRates(route); | |||||
| // 初始化运行状态参数 - 清零所有运行时状态 | // 初始化运行状态参数 - 清零所有运行时状态 | ||||
| route->run_state = PLSR_STATE_IDLE; // 运行状态:空闲 | route->run_state = PLSR_STATE_IDLE; // 运行状态:空闲 | ||||
| route->const_pulse_count = 0; // 匀速脉冲计数:清零 | route->const_pulse_count = 0; // 匀速脉冲计数:清零 | ||||
| route->freq_step = 0; // 频率步进值:清零 | route->freq_step = 0; // 频率步进值:清零 | ||||
| route->wait_start_tick = 0; // 等待开始时刻:清零 | route->wait_start_tick = 0; // 等待开始时刻:清零 | ||||
| route->act_start_tick = 0; // ACT开始时刻:清零 | route->act_start_tick = 0; // ACT开始时刻:清零 | ||||
| // 初始化模式相关参数 | // 初始化模式相关参数 | ||||
| route->prevPulseCount = 0; // 累积脉冲计数:清零 | route->prevPulseCount = 0; // 累积脉冲计数:清零 | ||||
| route->pulse_count = 0; // 当前脉冲计数:清零 | route->pulse_count = 0; // 当前脉冲计数:清零 | ||||
| // 初始化全局变量 | // 初始化全局变量 | ||||
| g_last_freq = 0; // 清零上一次计算的频率 | g_last_freq = 0; // 清零上一次计算的频率 | ||||
| PLSR_TIM6_SetUpdateFreq(50); //初始化TIM6更新频率为1000us(1ms) | |||||
| PLSR_PWM_Stop(); // 确保PWM停止,避免意外输出 | |||||
| } | |||||
| /** | |||||
| * @brief 启动PLSR路径执行 | |||||
| * @param route 路径控制结构体指针 | |||||
| * @note 如果起始频率为0,PWM不会启动,适用于等待外部触发的场景 | |||||
| */ | |||||
| void PLSR_Route_Start(PLSR_RouteConfig_t* route) | |||||
| { | |||||
| // 参数有效性检查 | |||||
| if (route == NULL) return; | |||||
| // 状态检查 - 避免重复启动 | |||||
| if (route->route_state == PLSR_ROUTE_RUNNING) | |||||
| return; | |||||
| // 重置全局脉冲计数器 | |||||
| AllPluse = 0; | |||||
| // 重置上次记录的总脉冲数,用于实时累加计算 | |||||
| s_last_total_pulse = g_plsr_route.pulse_count; | |||||
| // 启动时初始化用户可配置参数 | // 启动时初始化用户可配置参数 | ||||
| PLSR_Route_Set(route); | PLSR_Route_Set(route); | ||||
| @@ -1760,19 +1643,17 @@ void PLSR_Route_Start(PLSR_RouteConfig_t* route) | |||||
| route->current_freq = route->start_freq; // 设置当前频率为起始频率 | route->current_freq = route->start_freq; // 设置当前频率为起始频率 | ||||
| route->initial_freq = route->start_freq; // 设置加减速初始频率为起始频率 | route->initial_freq = route->start_freq; // 设置加减速初始频率为起始频率 | ||||
| route->run_state = PLSR_STATE_IDLE; // 设置运行状态为空闲 | route->run_state = PLSR_STATE_IDLE; // 设置运行状态为空闲 | ||||
| // 重置全局脉冲计数器 | |||||
| AllPluse = 0; | |||||
| // 重置上次记录的总脉冲数,用于实时累加计算 | |||||
| s_last_total_pulse = g_plsr_route.pulse_count; | |||||
| // 启动第一段 | |||||
| PLSR_Section_StartNewSection(route); | |||||
| // 启动定时器 | |||||
| // 计算默认加减速度 | |||||
| PLSR_Accel_UpdateRates(route); | |||||
| PLSR_TIM6_SetUpdateFreq(50); | |||||
| PLSR_TIM6_Start(); // 启动TIM6用于频率更新和等待时间计时 | PLSR_TIM6_Start(); // 启动TIM6用于频率更新和等待时间计时 | ||||
| HAL_TIM_Base_Start_IT(&htim2); // 启动TIM2中断用于段切换 | HAL_TIM_Base_Start_IT(&htim2); // 启动TIM2中断用于段切换 | ||||
| PLSR_PWM_Stop(); | |||||
| // 启动第一段 | |||||
| PLSR_Section_StartNewSection(route); | |||||
| switch (route->output_port) | switch (route->output_port) | ||||
| { | { | ||||
| case 0 : | case 0 : | ||||
| @@ -1860,7 +1741,7 @@ static uint8_t PLSR_SetDirectionPin(PLSR_RouteConfig_t* route, PLSR_SectionConfi | |||||
| } | } | ||||
| // 检测方向是否发生变化 | // 检测方向是否发生变化 | ||||
| uint8_t direction_changed = (s_last_direction != 0xFF && s_last_direction != is_forward); | |||||
| uint8_t direction_changed = (s_last_direction != is_forward); //TODO: 使用s_last_direction来检测方向变化,做了修改,第一次启动也有方向延时 | |||||
| // 更新上一段的方向信息 | // 更新上一段的方向信息 | ||||
| s_last_direction = is_forward; | s_last_direction = is_forward; | ||||
| @@ -2163,10 +2044,6 @@ void PLSR_SetupThreePartExecution(PLSR_RouteConfig_t* route) | |||||
| break; | break; | ||||
| } | } | ||||
| } | } | ||||
| // 所有部分完成或无效状态 | |||||
| __HAL_TIM_SetAutoreload(&htim2, 1); // 设置最小值 | |||||
| route->run_state = PLSR_STATE_CONST; | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -2231,7 +2108,6 @@ void PLSR_Section_SwitchNext(PLSR_RouteConfig_t* route, uint8_t is_pulse_complet | |||||
| // 脉冲完成触发:更新为上一段的目标频率 | // 脉冲完成触发:更新为上一段的目标频率 | ||||
| route->current_freq = current_section->target_freq; | route->current_freq = current_section->target_freq; | ||||
| } | } | ||||
| // 外部事件触发时保持当前频率不变,确保频率连续性 | |||||
| } | } | ||||
| @@ -2260,17 +2136,8 @@ uint32_t PLSR_Calculate_FreqByPosition(PLSR_RouteConfig_t* route, uint8_t is_acc | |||||
| uint32_t executed_pulses = 0; | uint32_t executed_pulses = 0; | ||||
| uint32_t next_executed_pulses = 0; | uint32_t next_executed_pulses = 0; | ||||
| // 计算当前部分已经执行的脉冲数 | // 计算当前部分已经执行的脉冲数 | ||||
| if(is_accel) | |||||
| { | |||||
| executed_pulses = current_tim2_count; | |||||
| next_executed_pulses = current_tim2_count + 1; | |||||
| } | |||||
| else | |||||
| { | |||||
| // 减速过程:使用全局脉冲计数器 | |||||
| executed_pulses = current_tim2_count; | |||||
| next_executed_pulses = executed_pulses + 1; | |||||
| } | |||||
| executed_pulses = current_tim2_count; | |||||
| next_executed_pulses = current_tim2_count + 1; | |||||
| // 检查是否需要重新计算:脉冲步数、加减速状态或段号发生变化时才重新计算 | // 检查是否需要重新计算:脉冲步数、加减速状态或段号发生变化时才重新计算 | ||||
| if (executed_pulses == s_last_executed_pulses && | if (executed_pulses == s_last_executed_pulses && | ||||
| @@ -2367,6 +2234,172 @@ uint32_t PLSR_Calculate_FreqByPosition(PLSR_RouteConfig_t* route, uint8_t is_acc | |||||
| return calculated_freq; | return calculated_freq; | ||||
| } | } | ||||
| // 正弦函数近似计算(输入0-90度,输出0-1000表示0-1.0) | |||||
| static uint32_t sine_lookup_table[91] = { | |||||
| 0, 17, 35, 52, 70, 87, 105, 122, 139, 156, // 0-9度 | |||||
| 174, 191, 208, 225, 242, 259, 276, 292, 309, 326, // 10-19度 | |||||
| 342, 358, 375, 391, 407, 423, 438, 454, 469, 485, // 20-29度 | |||||
| 500, 515, 530, 545, 559, 574, 588, 602, 616, 629, // 30-39度 | |||||
| 643, 656, 669, 682, 695, 707, 719, 731, 743, 755, // 40-49度 | |||||
| 766, 777, 788, 799, 809, 819, 829, 839, 848, 857, // 50-59度 | |||||
| 866, 875, 883, 891, 899, 906, 914, 921, 928, 934, // 60-69度 | |||||
| 940, 946, 951, 956, 961, 966, 970, 974, 978, 982, // 70-79度 | |||||
| 985, 988, 990, 993, 995, 996, 998, 999, 999, 1000, 1000 // 80-90度 | |||||
| }; | |||||
| static uint32_t fast_sine(uint32_t angle_deg) | |||||
| { | |||||
| if (angle_deg > 90) angle_deg = 90; | |||||
| return sine_lookup_table[angle_deg]; | |||||
| } | |||||
| uint32_t PLSR_Calculate_FreqByPosition_Sine(PLSR_RouteConfig_t* route, uint8_t is_accel) | |||||
| { | |||||
| if (route == NULL) return 0; | |||||
| // 静态变量用于缓存上次计算的结果,避免重复计算 | |||||
| static uint32_t s_last_executed_pulses = 0xFFFFFFFF; // 初始化为无效值 | |||||
| static uint32_t s_last_calculated_freq = 0; | |||||
| static uint8_t s_last_is_accel = 0xFF; // 初始化为无效值 | |||||
| static uint8_t s_last_section_num = 0xFF; // 初始化为无效值 | |||||
| // 获取当前段配置 | |||||
| PLSR_SectionConfig_t* current_section = &route->section[route->current_section_num - 1]; | |||||
| // 获取当前脉冲位置 | |||||
| uint32_t current_tim2_count = __HAL_TIM_GET_COUNTER(&htim2); | |||||
| uint32_t executed_pulses = 0; | |||||
| uint32_t next_executed_pulses = 0; | |||||
| // 计算当前部分已经执行的脉冲数 | |||||
| if(is_accel) | |||||
| { | |||||
| executed_pulses = current_tim2_count; | |||||
| next_executed_pulses = current_tim2_count + 1; | |||||
| } | |||||
| else | |||||
| { | |||||
| // 减速过程:使用全局脉冲计数器 | |||||
| executed_pulses = current_tim2_count; | |||||
| next_executed_pulses = executed_pulses + 1; | |||||
| } | |||||
| // 检查是否需要重新计算:脉冲步数、加减速状态或段号发生变化时才重新计算 | |||||
| if (executed_pulses == s_last_executed_pulses && | |||||
| is_accel == s_last_is_accel && | |||||
| route->current_section_num == s_last_section_num) | |||||
| { | |||||
| // 脉冲步数、状态和段号都没有变化,直接返回上次计算的结果 | |||||
| return s_last_calculated_freq; | |||||
| } | |||||
| // 获取正弦加减速参数 | |||||
| uint32_t v0 = route->initial_freq; // 初始频率 | |||||
| uint32_t v_max = route->target_freq; // 最大频率(需要在RouteConfig中添加此字段) | |||||
| uint32_t total_pulses = 0; // 加减速段的总脉冲数 | |||||
| if (is_accel) | |||||
| { | |||||
| total_pulses = route->accel_pulse_count; // 加速段脉冲数(需要在RouteConfig中添加此字段) | |||||
| } | |||||
| else | |||||
| { | |||||
| total_pulses = route->decel_pulse_count; // 减速段脉冲数(需要在RouteConfig中添加此字段) | |||||
| } | |||||
| // 防止除零错误 | |||||
| if (total_pulses == 0) | |||||
| { | |||||
| return v0; | |||||
| } | |||||
| // 计算当前脉冲开始时的频率和结束时的频率 | |||||
| uint32_t freq_start = 0; // 当前脉冲开始时的频率 | |||||
| uint32_t freq_end = 0; // 当前脉冲结束时的频率 | |||||
| // 计算当前脉冲开始时的频率(executed_pulses位置) | |||||
| if (executed_pulses == 0) | |||||
| { | |||||
| freq_start = v0; // 第一个脉冲开始时就是初始频率 | |||||
| } | |||||
| else | |||||
| { | |||||
| if (is_accel) | |||||
| { | |||||
| // 加速:使用正弦函数 v = v0 + (v_max - v0) * sin(π/2 * position / total_pulses) | |||||
| uint32_t angle_deg = (executed_pulses * 90) / total_pulses; // 将位置映射到0-90度 | |||||
| if (angle_deg > 90) angle_deg = 90; | |||||
| uint32_t sine_value = fast_sine(angle_deg); // 0-1000 | |||||
| freq_start = v0 + ((uint64_t)(v_max - v0) * sine_value) / 1000; | |||||
| } | |||||
| else | |||||
| { | |||||
| // 减速:使用余弦函数 v = v0 + (v_max - v0) * cos(π/2 * position / total_pulses) | |||||
| uint32_t angle_deg = (executed_pulses * 90) / total_pulses; // 将位置映射到0-90度 | |||||
| if (angle_deg > 90) angle_deg = 90; | |||||
| // cos(θ) = sin(90° - θ) | |||||
| uint32_t cos_angle = 90 - angle_deg; | |||||
| uint32_t cosine_value = fast_sine(cos_angle); // 0-1000 | |||||
| freq_start = v0 + ((uint64_t)(v_max - v0) * cosine_value) / 1000; | |||||
| } | |||||
| } | |||||
| // 计算当前脉冲结束时的频率(next_executed_pulses位置) | |||||
| if (next_executed_pulses >= total_pulses) | |||||
| { | |||||
| // 超出加减速段范围,频率为最大频率或初始频率 | |||||
| freq_end = is_accel ? v_max : v0; | |||||
| } | |||||
| else | |||||
| { | |||||
| if (is_accel) | |||||
| { | |||||
| // 加速:使用正弦函数 | |||||
| uint32_t angle_deg = (next_executed_pulses * 90) / total_pulses; | |||||
| if (angle_deg > 90) angle_deg = 90; | |||||
| uint32_t sine_value = fast_sine(angle_deg); | |||||
| freq_end = v0 + ((uint64_t)(v_max - v0) * sine_value) / 1000; | |||||
| } | |||||
| else | |||||
| { | |||||
| // 减速:使用余弦函数 | |||||
| uint32_t angle_deg = (next_executed_pulses * 90) / total_pulses; | |||||
| if (angle_deg > 90) angle_deg = 90; | |||||
| uint32_t cos_angle = 90 - angle_deg; | |||||
| uint32_t cosine_value = fast_sine(cos_angle); | |||||
| freq_end = v0 + ((uint64_t)(v_max - v0) * cosine_value) / 1000; | |||||
| } | |||||
| } | |||||
| // 计算当前脉冲的平均频率 | |||||
| uint32_t calculated_freq = (freq_start + freq_end) / 2; | |||||
| // 更新全局变量(保存当前脉冲结束时的频率,供下次使用) | |||||
| g_last_freq = freq_end; | |||||
| // 限制频率范围 | |||||
| if (calculated_freq < PLSR_PWM_FREQ_MIN) | |||||
| { | |||||
| calculated_freq = PLSR_PWM_FREQ_MIN; | |||||
| } | |||||
| else if (calculated_freq > PLSR_PWM_FREQ_MAX) | |||||
| { | |||||
| calculated_freq = PLSR_PWM_FREQ_MAX; | |||||
| } | |||||
| // 缓存本次计算结果,供下次比较使用 | |||||
| s_last_executed_pulses = executed_pulses; | |||||
| s_last_calculated_freq = calculated_freq; | |||||
| s_last_is_accel = is_accel; | |||||
| s_last_section_num = route->current_section_num; | |||||
| return calculated_freq; | |||||
| } | |||||
| /** | /** | ||||
| * @brief 加减速处理函数 | * @brief 加减速处理函数 | ||||
| * @param route: 路径控制结构体指针 | * @param route: 路径控制结构体指针 | ||||
| @@ -2411,16 +2444,30 @@ void PLSR_Accel_Process(PLSR_RouteConfig_t* route) | |||||
| // ==================== 加速处理 ==================== | // ==================== 加速处理 ==================== | ||||
| if (route->run_state == PLSR_STATE_ACCEL) | if (route->run_state == PLSR_STATE_ACCEL) | ||||
| { | { | ||||
| // 根据当前脉冲位置计算频率(传入1表示加速过程) | |||||
| uint32_t calculated_freq = PLSR_Calculate_FreqByPosition(route, 1); | |||||
| uint32_t calculated_freq = 0; | |||||
| switch (route->accel_config.accel_algorithm) | |||||
| { | |||||
| case PLSR_ACCEL_LINEAR: | |||||
| // 根据当前脉冲位置计算频率(传入1表示加速过程) | |||||
| calculated_freq = PLSR_Calculate_FreqByPosition(route, 1); | |||||
| break; | |||||
| case PLSR_ACCEL_SINE: | |||||
| // 使用正弦加速算法 | |||||
| calculated_freq = PLSR_Calculate_FreqByPosition_Sine(route, 1); | |||||
| break; | |||||
| default: | |||||
| break; | |||||
| } | |||||
| // 检查是否达到目标频率 | // 检查是否达到目标频率 | ||||
| if (calculated_freq >= route->target_freq) { | |||||
| if (calculated_freq >= route->target_freq) | |||||
| { | |||||
| calculated_freq = route->target_freq; // 限制到目标频率 | calculated_freq = route->target_freq; // 限制到目标频率 | ||||
| } | } | ||||
| // 只有当计算出的频率与当前频率不同时才更新 | // 只有当计算出的频率与当前频率不同时才更新 | ||||
| if (calculated_freq != route->current_freq) { | |||||
| if (calculated_freq != route->current_freq) | |||||
| { | |||||
| route->current_freq = calculated_freq; | route->current_freq = calculated_freq; | ||||
| PLSR_PWM_SetFrequency(route->current_freq); | PLSR_PWM_SetFrequency(route->current_freq); | ||||
| } | } | ||||
| @@ -2439,7 +2486,8 @@ void PLSR_Accel_Process(PLSR_RouteConfig_t* route) | |||||
| uint32_t calculated_freq = PLSR_Calculate_FreqByPosition(route, 0); | uint32_t calculated_freq = PLSR_Calculate_FreqByPosition(route, 0); | ||||
| // 检查是否达到目标频率 | // 检查是否达到目标频率 | ||||
| if (calculated_freq <= route->target_freq) { | |||||
| if (calculated_freq <= route->target_freq) | |||||
| { | |||||
| calculated_freq = route->target_freq; // 限制到目标频率 | calculated_freq = route->target_freq; // 限制到目标频率 | ||||
| // 如果目标频率为0,说明减速到停止 | // 如果目标频率为0,说明减速到停止 | ||||
| @@ -2496,26 +2544,6 @@ void PLSR_Accel_UpdateRates(PLSR_RouteConfig_t* route) | |||||
| } | } | ||||
| } | } | ||||
| /** | |||||
| * @brief 设置默认加减速参数 | |||||
| * @param route: 路径控制结构体指针 | |||||
| * @param accel_time_ms: 加速时间(毫秒) | |||||
| * @param decel_time_ms: 减速时间(毫秒) | |||||
| * @retval None | |||||
| * @note 设置默认加减速时间并自动计算加减速度 | |||||
| */ | |||||
| void PLSR_Accel_SetDefaultParams(PLSR_RouteConfig_t* route, uint32_t accel_time_ms, uint32_t decel_time_ms) | |||||
| { | |||||
| if (route == NULL) return; | |||||
| // 设置加减速时间 | |||||
| route->default_accel_time_ms = accel_time_ms; | |||||
| route->default_decel_time_ms = decel_time_ms; | |||||
| // 自动更新加减速度 | |||||
| PLSR_Accel_UpdateRates(route); | |||||
| } | |||||
| /** | /** | ||||
| * @brief 任务中执行段切换逻辑 | * @brief 任务中执行段切换逻辑 | ||||
| @@ -2538,9 +2566,6 @@ void PLSR_TaskSectionSwitch(PLSR_RouteConfig_t* route) | |||||
| PLSR_Section_SwitchNext(route, 0); // 外部事件触发,传入0 | PLSR_Section_SwitchNext(route, 0); // 外部事件触发,传入0 | ||||
| /* 启动新段,设置新的脉冲参数和频率 */ | /* 启动新段,设置新的脉冲参数和频率 */ | ||||
| PLSR_Section_StartNewSection(route); | PLSR_Section_StartNewSection(route); | ||||
| // /* 启动PWM输出 */ | |||||
| // PLSR_PWM_Start(); | |||||
| PLSR_ClearGpioTriggerFlag(); // 清除GPIO触发标志 | |||||
| } | } | ||||
| return; // 等待外部事件时不需要继续处理 | return; // 等待外部事件时不需要继续处理 | ||||
| } | } | ||||
| @@ -2568,8 +2593,6 @@ void PLSR_TaskSectionSwitch(PLSR_RouteConfig_t* route) | |||||
| PLSR_Section_SwitchNext(route, 1); // 脉冲完成触发,传入1 | PLSR_Section_SwitchNext(route, 1); // 脉冲完成触发,传入1 | ||||
| /* 启动新段,设置新的脉冲参数和频率 */ | /* 启动新段,设置新的脉冲参数和频率 */ | ||||
| PLSR_Section_StartNewSection(route); | PLSR_Section_StartNewSection(route); | ||||
| // /* 启动PWM输出 */ | |||||
| // PLSR_PWM_Start(); | |||||
| } | } | ||||
| } | } | ||||
| else | else | ||||
| @@ -2581,8 +2604,6 @@ void PLSR_TaskSectionSwitch(PLSR_RouteConfig_t* route) | |||||
| PLSR_Section_SwitchNext(route, 0); // 其他等待条件触发,传入0 | PLSR_Section_SwitchNext(route, 0); // 其他等待条件触发,传入0 | ||||
| /* 启动新段,设置新的脉冲参数和频率 */ | /* 启动新段,设置新的脉冲参数和频率 */ | ||||
| PLSR_Section_StartNewSection(route); | PLSR_Section_StartNewSection(route); | ||||
| // /* 启动PWM输出 */ | |||||
| // PLSR_PWM_Start(); | |||||
| } | } | ||||
| /* 如果等待条件未满足,保持等待状态,等待下次检查 */ | /* 如果等待条件未满足,保持等待状态,等待下次检查 */ | ||||
| } | } | ||||
| @@ -2603,7 +2624,7 @@ uint8_t PLSR_Section_CheckPulseComplete(PLSR_RouteConfig_t* route) | |||||
| // 根据等待条件类型检查 | // 根据等待条件类型检查 | ||||
| if (current_section->wait_condition.wait_type == PLSR_WAIT_PLUSEEND || | if (current_section->wait_condition.wait_type == PLSR_WAIT_PLUSEEND || | ||||
| current_section->wait_condition.wait_type == PLSR_WAIT_EXT_OR_END) | current_section->wait_condition.wait_type == PLSR_WAIT_EXT_OR_END) | ||||
| { | |||||
| { | |||||
| int32_t target_pulse = current_section->actual_pulse; | int32_t target_pulse = current_section->actual_pulse; | ||||
| if(target_pulse < 0) target_pulse = -target_pulse; | if(target_pulse < 0) target_pulse = -target_pulse; | ||||
| target_pulse += route->prevPulseCount; // 累加上次的脉冲计数 | target_pulse += route->prevPulseCount; // 累加上次的脉冲计数 | ||||
| @@ -2699,6 +2720,8 @@ void PLSR_ClearExtEvent(PLSR_RouteConfig_t* route) | |||||
| // 清除外部事件标志 | // 清除外部事件标志 | ||||
| wait_cond->ext_event_flag = 0; | wait_cond->ext_event_flag = 0; | ||||
| // /* 启动PWM输出 */ | |||||
| PLSR_ClearGpioTriggerFlag(); // 清除GPIO触发标志 | |||||
| } | } | ||||
| // ==================== PLSR实时段切换任务实现 ==================== | // ==================== PLSR实时段切换任务实现 ==================== | ||||
| @@ -2751,11 +2774,13 @@ void PLSR_SectionSwitchTask(void *p_arg) | |||||
| (void)p_arg; // 避免编译器警告 | (void)p_arg; // 避免编译器警告 | ||||
| while (1) { | |||||
| while (1) | |||||
| { | |||||
| /* 等待段切换信号量 */ | /* 等待段切换信号量 */ | ||||
| OSSemPend(s_section_switch_sem, 0, &err); | OSSemPend(s_section_switch_sem, 0, &err); | ||||
| if (err == OS_ERR_NONE) { | |||||
| if (err == OS_ERR_NONE) | |||||
| { | |||||
| /* 信号量获取成功,执行段切换逻辑 */ | /* 信号量获取成功,执行段切换逻辑 */ | ||||
| PLSR_TaskSectionSwitch(&g_plsr_route); | PLSR_TaskSectionSwitch(&g_plsr_route); | ||||
| } | } | ||||
| @@ -1041,7 +1041,7 @@ | |||||
| <item>s_last_total_pulse</item> | <item>s_last_total_pulse</item> | ||||
| <item>current_pulse_count</item> | <item>current_pulse_count</item> | ||||
| <item>g_plsr_total_pulse_count</item> | <item>g_plsr_total_pulse_count</item> | ||||
| <item></item> | |||||
| <item /> | |||||
| </expressions> | </expressions> | ||||
| <col-names> | <col-names> | ||||
| <item>Expression</item> | <item>Expression</item> | ||||
| @@ -14,10 +14,10 @@ | |||||
| <StLinkDriver> | <StLinkDriver> | ||||
| <stlinkserialNo>46232557</stlinkserialNo> | <stlinkserialNo>46232557</stlinkserialNo> | ||||
| <stlinkfoundProbes /> | <stlinkfoundProbes /> | ||||
| <CStepIntDis>_ 0</CStepIntDis> | |||||
| <LeaveTargetRunning>_ 0</LeaveTargetRunning> | |||||
| <stlinkResetStyle>0</stlinkResetStyle> | <stlinkResetStyle>0</stlinkResetStyle> | ||||
| <stlinkResetStrategy>2</stlinkResetStrategy> | <stlinkResetStrategy>2</stlinkResetStrategy> | ||||
| <CStepIntDis>_ 0</CStepIntDis> | |||||
| <LeaveTargetRunning>_ 0</LeaveTargetRunning> | |||||
| </StLinkDriver> | </StLinkDriver> | ||||
| <DebugChecksum> | <DebugChecksum> | ||||
| <Checksum>3785312791</Checksum> | <Checksum>3785312791</Checksum> | ||||
| @@ -84,13 +84,6 @@ | |||||
| <LogFile>_ ""</LogFile> | <LogFile>_ ""</LogFile> | ||||
| <Category>_ 0</Category> | <Category>_ 0</Category> | ||||
| </LogFile> | </LogFile> | ||||
| <DisassembleMode> | |||||
| <mode>0</mode> | |||||
| </DisassembleMode> | |||||
| <Aliases> | |||||
| <Count>0</Count> | |||||
| <SuppressDialog>0</SuppressDialog> | |||||
| </Aliases> | |||||
| <Trace2> | <Trace2> | ||||
| <Enabled>0</Enabled> | <Enabled>0</Enabled> | ||||
| <ShowSource>0</ShowSource> | <ShowSource>0</ShowSource> | ||||
| @@ -136,9 +129,6 @@ | |||||
| <ShowTimeSum>1</ShowTimeSum> | <ShowTimeSum>1</ShowTimeSum> | ||||
| <SumSortOrder>0</SumSortOrder> | <SumSortOrder>0</SumSortOrder> | ||||
| </EventLog> | </EventLog> | ||||
| <Breakpoints2> | |||||
| <Count>0</Count> | |||||
| </Breakpoints2> | |||||
| <DriverProfiling> | <DriverProfiling> | ||||
| <Enabled>0</Enabled> | <Enabled>0</Enabled> | ||||
| <Mode>3</Mode> | <Mode>3</Mode> | ||||
| @@ -152,4 +142,14 @@ | |||||
| <CallStackStripe> | <CallStackStripe> | ||||
| <ShowTiming>1</ShowTiming> | <ShowTiming>1</ShowTiming> | ||||
| </CallStackStripe> | </CallStackStripe> | ||||
| <DisassembleMode> | |||||
| <mode>0</mode> | |||||
| </DisassembleMode> | |||||
| <Breakpoints2> | |||||
| <Count>0</Count> | |||||
| </Breakpoints2> | |||||
| <Aliases> | |||||
| <Count>0</Count> | |||||
| <SuppressDialog>0</SuppressDialog> | |||||
| </Aliases> | |||||
| </settings> | </settings> | ||||
| @@ -1,143 +1,63 @@ | |||||
| # ninja log v5 | # ninja log v5 | ||||
| 464 505 7768536870781453 stm32f4xx_ll_rng.pbi 5e12b9ea00d0b826 | |||||
| 67 129 7768536866814718 stm32f4xx_ll_gpio.pbi df8b54563945d41d | |||||
| 32 67 7768536866465887 stm32f4xx_ll_tim.pbi b88554c6464192f5 | |||||
| 159 513 7768536870801418 stm32f4xx_hal_flash_ex.pbi ac2d035774fe6a2e | |||||
| 931 1257 7768536878369160 stm32f4xx_hal_pwr.pbi b347497fce55b6a8 | |||||
| 115 147 7768536867273193 stm32f4xx_ll_pwr.pbi 952cb4e4f4edb65b | |||||
| 166 215 7768536867811386 test.1_part7.pbi 67c64030b23c9b51 | |||||
| 1543 2106 7768536886832096 test.1_part3.pbi 2c7780fc3f88c160 | |||||
| 1210 1542 7768536881070146 stm32f4xx_hal_rcc_ex.pbi c1d751d24d77a2df | |||||
| 42 122 7768536866824682 app_hooks.pbi ffd399489d189d5a | |||||
| 1652 2177 7768536887509800 test.1_part4.pbi b15d70d6e2dea5ca | |||||
| 513 867 7768536874350914 stm32f4xx_hal_pwr_ex.pbi b84426bf5a4ce0cf | |||||
| 45 114 7768536866864582 os_cpu_c.pbi eb75b848b406ea34 | |||||
| 578 950 7768536875260101 stm32f4xx_hal_rcc.pbi 50976e6b18f3b8bc | |||||
| 942 1346 7768536879266167 stm32f4xx_hal_tim.pbi 71840baae88d57c4 | |||||
| 871 1213 7768536877692971 stm32f4xx_hal_usart.pbi b368fafd8b8b8bb9 | |||||
| 3553 5121 7768536916697101 test.1.pbw f11e09b552b4c82f | |||||
| 175 253 7775491955598164 stm32f4xx_ll_rng.pbi 5e12b9ea00d0b826 | |||||
| 1025 1056 7775491964090997 stm32f4xx_ll_gpio.pbi df8b54563945d41d | |||||
| 254 617 7775491959696056 stm32f4xx_hal_flash_ex.pbi ac2d035774fe6a2e | |||||
| 1088 1455 7775491967911042 stm32f4xx_hal_pwr.pbi b347497fce55b6a8 | |||||
| 736 803 7775491961177804 stm32f4xx_ll_pwr.pbi 952cb4e4f4edb65b | |||||
| 49 80 7775491954328170 stm32f4xx_ll_tim.pbi b88554c6464192f5 | |||||
| 181 256 7775491955718160 test.1_part7.pbi 67c64030b23c9b51 | |||||
| 1456 2021 7775491973610751 test.1_part3.pbi 2c7780fc3f88c160 | |||||
| 492 958 7775491962735135 stm32f4xx_hal_rcc_ex.pbi c1d751d24d77a2df | |||||
| 111 174 7775491955278161 app_hooks.pbi ffd399489d189d5a | |||||
| 499 671 7775491960222592 os_cpu_c.pbi eb75b848b406ea34 | |||||
| 955 1322 7775491966570992 stm32f4xx_hal_pwr_ex.pbi b84426bf5a4ce0cf | |||||
| 1558 2072 7775491974160761 test.1_part4.pbi b15d70d6e2dea5ca | |||||
| 51 494 7775491957888175 stm32f4xx_hal_rcc.pbi 50976e6b18f3b8bc | |||||
| 1192 1557 7775491968840991 stm32f4xx_hal_usart.pbi b368fafd8b8b8bb9 | |||||
| 618 1045 7775491963970993 stm32f4xx_hal_tim.pbi 71840baae88d57c4 | |||||
| 706 735 7775491960887804 stm32f4xx_ll_dac.pbi 7dfc4be0933cdfaf | |||||
| 2014 2487 7762488664073707 uart.pbi 5ce52444157923c9 | 2014 2487 7762488664073707 uart.pbi 5ce52444157923c9 | ||||
| 215 253 7768536868329652 stm32f4xx_ll_dac.pbi 7dfc4be0933cdfaf | |||||
| 1214 1246 7768536878269490 stm32f4xx_ll_crc.pbi dcf41d4b97590765 | |||||
| 126 159 7768536867392785 stm32f4xx_ll_rcc.pbi fb9ace481decf8ab | |||||
| 1669 1999 7768536885705853 stm32f4xx_hal_msp.pbi 8144db72f01a260b | |||||
| 498 546 7768536871140260 stm32f4xx_ll_spi.pbi ce805017b70a4f43 | |||||
| 48 118 7768536866944314 os_dbg.pbi f7287a072fe86a55 | |||||
| 36 71 7768536866495790 stm32f4xx_ll_usart.pbi 783190689e783d9 | |||||
| 147 509 7768536870671821 stm32f4xx_hal_crc.pbi 881b29e4c80746b3 | |||||
| 888 930 7768536875008719 stm32f4xx_ll_dma.pbi f9e6142ede2883b4 | |||||
| 1247 1281 7768536878608362 stm32f4xx_ll_exti.pbi 883a2fd463949e02 | |||||
| 1282 1297 7768536878777835 test.1_part5.pbi 41f12be61ce67c27 | |||||
| 39 166 7768536867462563 ucos_ii.pbi 4e0ab25e0060431e | |||||
| 2355 2700 7768536892214098 stm32f4xx_hal.pbi a073c739b6b34173 | |||||
| 71 125 7768536866854589 stm32f4xx_ll_i2c.pbi 7f1151d8874c40c9 | |||||
| 868 1209 7768536877633167 stm32f4xx_hal_sram.pbi 4652c5af4efd4e19 | |||||
| 592 942 7768536875198075 stm32f4xx_hal_flash.pbi eccf13860e1d0c6a | |||||
| 546 578 7768536871578800 test.1_part6.pbi b9d684e502f25afa | |||||
| 119 502 7768536870612013 stm32f4xx_hal_tim_ex.pbi 3c68a2e86514987f | |||||
| 1205 1538 7768536881149867 stm32f4xx_hal_flash_ramfunc.pbi ae498685b336a49c | |||||
| 950 1261 7768536878369160 stm32f4xx_hal_wwdg.pbi fca2b44f67349f99 | |||||
| 1257 1652 7768536881967123 stm32f4xx_hal_uart.pbi e7ca7ebbb4330340 | |||||
| 3959 5601 7775492009203922 test.1.pbw f11e09b552b4c82f | |||||
| 703 863 7775491961953988 stm32f4xx_ll_crc.pbi dcf41d4b97590765 | |||||
| 497 535 7775491958768163 stm32f4xx_ll_rcc.pbi fb9ace481decf8ab | |||||
| 48 77 7775491954308167 stm32f4xx_ll_spi.pbi ce805017b70a4f43 | |||||
| 1322 1656 7775491969944367 stm32f4xx_hal_msp.pbi 8144db72f01a260b | |||||
| 54 84 7775491954368170 stm32f4xx_ll_usart.pbi 783190689e783d9 | |||||
| 41 111 7775491954588180 os_dbg.pbi f7287a072fe86a55 | |||||
| 1221 1251 7775491966040988 stm32f4xx_ll_dma.pbi f9e6142ede2883b4 | |||||
| 1656 2023 7775491973360747 stm32f4xx_hal_crc.pbi 881b29e4c80746b3 | |||||
| 958 1024 7775491963470994 stm32f4xx_ll_exti.pbi 883a2fd463949e02 | |||||
| 46 181 7775491955338158 ucos_ii.pbi 4e0ab25e0060431e | |||||
| 1251 1262 7775491966160991 test.1_part5.pbi 41f12be61ce67c27 | |||||
| 1045 1087 7775491964300993 stm32f4xx_ll_i2c.pbi 7f1151d8874c40c9 | |||||
| 1907 2210 7775491975630751 stm32f4xx_hal.pbi a073c739b6b34173 | |||||
| 84 498 7775491958198156 stm32f4xx_hal_sram.pbi 4652c5af4efd4e19 | |||||
| 672 703 7775491960495378 test.1_part6.pbi b9d684e502f25afa | |||||
| 1057 1450 7775491967580991 stm32f4xx_hal_flash.pbi eccf13860e1d0c6a | |||||
| 536 1021 7775491963550990 stm32f4xx_hal_tim_ex.pbi 3c68a2e86514987f | |||||
| 78 496 7775491958128176 stm32f4xx_hal_wwdg.pbi fca2b44f67349f99 | |||||
| 80 492 7775491958048235 stm32f4xx_hal_flash_ramfunc.pbi ae498685b336a49c | |||||
| 804 1191 7775491965350989 stm32f4xx_hal_uart.pbi e7ca7ebbb4330340 | |||||
| 35 454 7762489045860992 timer.pbi 8f8acc6a162957f | 35 454 7762489045860992 timer.pbi 8f8acc6a162957f | ||||
| 122 464 7768536870422653 stm32f4xx_hal_i2c.pbi 74395538aa12fa10 | |||||
| 864 1205 7768536877762736 stm32f4xx_hal_dma.pbi 2d6aa8f3983bf80a | |||||
| 2024 2359 7768536889393504 stm32f4xx_hal_timebase_tim.pbi b6f5ce0feaca8054 | |||||
| 505 887 7768536874450598 stm32f4xx_hal_dma_ex.pbi 1960c5ab56ffede7 | |||||
| 509 871 7768536874185622 stm32f4xx_hal_i2c_ex.pbi 7798e48f8e6ef374 | |||||
| 253 592 7768536871708352 stm32f4xx_hal_exti.pbi 373789209d565f00 | |||||
| 1644 2023 7768536885964976 main.pbi 9c0a6aa02351636a | |||||
| 1995 2354 7768536889343681 stm32f4xx_it.pbi d01766022cb163bc | |||||
| 130 498 7768536870532288 stm32f4xx_hal_cortex.pbi 2c6d2473a153fb5a | |||||
| 2110 2461 7768536890190832 system_stm32f4xx.pbi f50e519d7e78a5de | |||||
| 1999 2335 7768536889004806 gpio.pbi a088b5271f02118a | |||||
| 3209 3553 7768536901332297 test.1.pbd 363d5d355a216cdf | |||||
| 2336 2882 7768536894499702 test.1_part0.pbi 60db414ccd7a80f4 | |||||
| 502 863 7768536874420683 stm32f4xx_hal_gpio.pbi 53b438f48be9a8d0 | |||||
| 2700 3209 7768536897898329 test.1_part1.pbi 72148e63fe682e2f | |||||
| 1539 2110 7768536886772270 test.1_part2.pbi 932c7a5b50912170 | |||||
| 1347 1669 7768536882345866 dma.pbi 4f5ebe00ac67ed57 | |||||
| 2177 2581 7768536891416765 tim.pbi f07c6d790a519d93 | |||||
| 2106 2492 7768536890439999 usart.pbi 7c2d93866867ab60 | |||||
| 1297 1647 7768536882196362 modbus_log.pbi 596603da5f343c45 | |||||
| 1648 1995 7768536885436731 modbus_crc.pbi 9b76681ddf289794 | |||||
| 1261 1644 7768536881937241 flash_save.pbi dc7405226be28cc6 | |||||
| 32 380 7768544283889545 tim.pbi f07c6d790a519d93 | |||||
| 381 904 7768544289141477 test.1_part1.pbi 72148e63fe682e2f | |||||
| 905 1273 7768544292826533 test.1.pbd 363d5d355a216cdf | |||||
| 1273 2905 7768544308773033 test.1.pbw f11e09b552b4c82f | |||||
| 36 414 7768544355956471 tim.pbi f07c6d790a519d93 | |||||
| 415 955 7768544361556770 test.1_part1.pbi 72148e63fe682e2f | |||||
| 955 1326 7768544365284012 test.1.pbd 363d5d355a216cdf | |||||
| 1327 3036 7768544381928778 test.1.pbw f11e09b552b4c82f | |||||
| 53 512 7774757765418465 modbus_crc.pbi 9b76681ddf289794 | |||||
| 58 653 7774757766821431 stm32f4xx_hal_dma.pbi 2d6aa8f3983bf80a | |||||
| 61 660 7774757766861293 stm32f4xx_hal_flash.pbi eccf13860e1d0c6a | |||||
| 64 681 7774757767105566 stm32f4xx_hal_msp.pbi 8144db72f01a260b | |||||
| 55 793 7774757768209498 usart.pbi 7c2d93866867ab60 | |||||
| 50 796 7774757767932786 gpio.pbi a088b5271f02118a | |||||
| 513 976 7774757769998117 dma.pbi 4f5ebe00ac67ed57 | |||||
| 654 1103 7774757771261951 stm32f4xx_hal_flash_ex.pbi ac2d035774fe6a2e | |||||
| 662 1117 7774757771471254 stm32f4xx_hal_gpio.pbi 53b438f48be9a8d0 | |||||
| 682 1255 7774757772829950 stm32f4xx_hal_i2c.pbi 74395538aa12fa10 | |||||
| 797 1266 7774757772959510 stm32f4xx_hal_exti.pbi 373789209d565f00 | |||||
| 794 1334 7774757773637248 modbus_log.pbi 596603da5f343c45 | |||||
| 977 1595 7774757775528721 stm32f4xx_hal_timebase_tim.pbi b6f5ce0feaca8054 | |||||
| 1103 1598 7774757775668265 stm32f4xx_hal_cortex.pbi 2c6d2473a153fb5a | |||||
| 1256 1728 7774757777505243 stm32f4xx_hal_dma_ex.pbi 1960c5ab56ffede7 | |||||
| 1118 1731 7774757777348937 main.pbi 9c0a6aa02351636a | |||||
| 1267 1776 7774757778071154 stm32f4xx_hal_flash_ramfunc.pbi ae498685b336a49c | |||||
| 1334 1939 7774757779680060 flash_save.pbi dc7405226be28cc6 | |||||
| 1729 2087 7774757781171735 system_stm32f4xx.pbi f50e519d7e78a5de | |||||
| 1732 2090 7774757781191666 stm32f4xx_hal.pbi a073c739b6b34173 | |||||
| 1595 2122 7774757781371064 stm32f4xx_it.pbi d01766022cb163bc | |||||
| 1599 2182 7774757781696829 tim.pbi f07c6d790a519d93 | |||||
| 2182 2219 7774757782489253 stm32f4xx_ll_crc.pbi dcf41d4b97590765 | |||||
| 1777 2226 7774757782545315 stm32f4xx_hal_crc.pbi 881b29e4c80746b3 | |||||
| 1939 2355 7774757783677455 stm32f4xx_hal_rcc_ex.pbi c1d751d24d77a2df | |||||
| 2226 2358 7774757783412413 stm32f4xx_ll_pwr.pbi 952cb4e4f4edb65b | |||||
| 2219 2362 7774757783863005 stm32f4xx_ll_i2c.pbi 7f1151d8874c40c9 | |||||
| 2362 2426 7774757784281614 stm32f4xx_ll_rng.pbi 5e12b9ea00d0b826 | |||||
| 2359 2428 7774757784261676 stm32f4xx_ll_rcc.pbi fb9ace481decf8ab | |||||
| 2426 2470 7774757784937681 stm32f4xx_ll_usart.pbi 783190689e783d9 | |||||
| 2429 2511 7774757785326375 app_hooks.pbi ffd399489d189d5a | |||||
| 2470 2516 7774757785416109 stm32f4xx_ll_dma.pbi f9e6142ede2883b4 | |||||
| 2122 2599 7774757786284402 stm32f4xx_hal_tim_ex.pbi 3c68a2e86514987f | |||||
| 2090 2621 7774757786503677 stm32f4xx_hal_tim.pbi 71840baae88d57c4 | |||||
| 2087 2628 7774757786573447 stm32f4xx_hal_sram.pbi 4652c5af4efd4e19 | |||||
| 2599 2643 7774757786703004 stm32f4xx_ll_tim.pbi b88554c6464192f5 | |||||
| 2621 2687 7774757786958201 stm32f4xx_ll_spi.pbi ce805017b70a4f43 | |||||
| 2629 2711 7774757787406701 os_cpu_c.pbi eb75b848b406ea34 | |||||
| 2711 2758 7774757787835262 stm32f4xx_ll_gpio.pbi df8b54563945d41d | |||||
| 2356 2798 7774757788279456 stm32f4xx_hal_pwr.pbi b347497fce55b6a8 | |||||
| 2799 2981 7774757789782474 stm32f4xx_ll_exti.pbi 883a2fd463949e02 | |||||
| 2981 3054 7774757790828172 os_dbg.pbi f7287a072fe86a55 | |||||
| 3054 3090 7774757791133180 test.1_part6.pbi b9d684e502f25afa | |||||
| 2687 3142 7774757791723241 stm32f4xx_hal_uart.pbi e7ca7ebbb4330340 | |||||
| 2758 3191 7774757791832868 stm32f4xx_hal_rcc.pbi 50976e6b18f3b8bc | |||||
| 2512 3222 7774757792456595 test.1_part0.pbi 60db414ccd7a80f4 | |||||
| 2517 3226 7774757792406773 test.1_part1.pbi 72148e63fe682e2f | |||||
| 3227 3262 7774757792901125 stm32f4xx_ll_dac.pbi 7dfc4be0933cdfaf | |||||
| 2643 3274 7774757793030690 test.1_part2.pbi 932c7a5b50912170 | |||||
| 3263 3277 7774757793070559 test.1_part5.pbi 41f12be61ce67c27 | |||||
| 3091 3329 7774757793584348 ucos_ii.pbi 4e0ab25e0060431e | |||||
| 3329 3408 7774757793919877 test.1_part7.pbi 67c64030b23c9b51 | |||||
| 3142 3463 7774757794922970 stm32f4xx_hal_wwdg.pbi fca2b44f67349f99 | |||||
| 3192 3538 7774757795381443 stm32f4xx_hal_usart.pbi b368fafd8b8b8bb9 | |||||
| 3223 3562 7774757795755841 stm32f4xx_hal_pwr_ex.pbi b84426bf5a4ce0cf | |||||
| 3275 3719 7774757797186849 stm32f4xx_hal_i2c_ex.pbi 7798e48f8e6ef374 | |||||
| 3538 4035 7774757800662008 test.1_part4.pbi b15d70d6e2dea5ca | |||||
| 3720 4222 7774757802537525 test.1_part3.pbi 2c7780fc3f88c160 | |||||
| 4223 4570 7774757806008919 test.1.pbd 363d5d355a216cdf | |||||
| 4570 6215 7774757822110213 test.1.pbw f11e09b552b4c82f | |||||
| 32 503 7774758302187140 tim.pbi f07c6d790a519d93 | |||||
| 504 1035 7774758307518345 test.1_part1.pbi 72148e63fe682e2f | |||||
| 1036 1380 7774758310962764 test.1.pbd 363d5d355a216cdf | |||||
| 1380 3020 7774758326958792 test.1.pbw f11e09b552b4c82f | |||||
| 36 418 7774758353867993 tim.pbi f07c6d790a519d93 | |||||
| 419 948 7774758359181271 test.1_part1.pbi 72148e63fe682e2f | |||||
| 949 1296 7774758362662264 test.1.pbd 363d5d355a216cdf | |||||
| 1296 2901 7774758378363869 test.1.pbw f11e09b552b4c82f | |||||
| 44 489 7774760193113989 tim.pbi f07c6d790a519d93 | |||||
| 490 1101 7774760199253685 test.1_part1.pbi 72148e63fe682e2f | |||||
| 1102 1489 7774760203131502 test.1.pbd 363d5d355a216cdf | |||||
| 1490 3121 7774760219100007 test.1.pbw f11e09b552b4c82f | |||||
| 1022 1453 7775491967310981 stm32f4xx_hal_i2c.pbi 74395538aa12fa10 | |||||
| 2024 2356 7775491976990745 stm32f4xx_hal_dma.pbi 2d6aa8f3983bf80a | |||||
| 1263 1658 7775491969448764 stm32f4xx_hal_timebase_tim.pbi b6f5ce0feaca8054 | |||||
| 257 706 7775491960455381 stm32f4xx_hal_i2c_ex.pbi 7798e48f8e6ef374 | |||||
| 2180 2542 7775491978783315 stm32f4xx_hal_dma_ex.pbi 1960c5ab56ffede7 | |||||
| 2489 2913 7775491982417984 main.pbi 9c0a6aa02351636a | |||||
| 494 955 7775491962830988 stm32f4xx_hal_exti.pbi 373789209d565f00 | |||||
| 1450 1816 7775491971680760 stm32f4xx_it.pbi d01766022cb163bc | |||||
| 2021 2491 7775491978105984 stm32f4xx_hal_cortex.pbi 2c6d2473a153fb5a | |||||
| 1816 2179 7775491974790780 system_stm32f4xx.pbi f50e519d7e78a5de | |||||
| 2073 2488 7775491978387516 gpio.pbi a088b5271f02118a | |||||
| 864 1220 7775491965590989 stm32f4xx_hal_gpio.pbi 53b438f48be9a8d0 | |||||
| 3076 3611 7775491989645763 test.1_part0.pbi 60db414ccd7a80f4 | |||||
| 3611 3958 7775491993118138 test.1.pbd 363d5d355a216cdf | |||||
| 2491 3074 7775491984281909 test.1_part1.pbi 72148e63fe682e2f | |||||
| 2543 3075 7775491984241897 test.1_part2.pbi 932c7a5b50912170 | |||||
| 2211 2594 7775491979068866 dma.pbi 4f5ebe00ac67ed57 | |||||
| 1453 1907 7775491972550755 tim.pbi f07c6d790a519d93 | |||||
| 1659 2091 7775491974410748 usart.pbi 7c2d93866867ab60 | |||||
| 2595 3076 7775491984211971 modbus_log.pbi 596603da5f343c45 | |||||
| 2356 2820 7775491981319035 flash_save.pbi dc7405226be28cc6 | |||||
| 2091 2597 7775491979028944 modbus_crc.pbi 9b76681ddf289794 | |||||
| @@ -1,55 +1,61 @@ | |||||
| main.pbi: \ | main.pbi: \ | ||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\dma.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Source\os_trace.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Ports\os_cpu.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Config\os_cfg.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Config\app_cfg.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Source\ucos_ii.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_float_setup.h \ | |||||
| E:\Software\IAR\arm\inc\c\ycheck.h E:\Software\IAR\arm\inc\c\math.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\tim.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\usart.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\modbus_log.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\flash_save.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\modbus_crc.h \ | |||||
| E:\Software\IAR\arm\inc\c\stdarg.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Product_stdlib.h \ | |||||
| E:\Software\IAR\arm\inc\c\stdlib.h E:\Software\IAR\arm\inc\c\ctype.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Product_string.h \ | |||||
| E:\Software\IAR\arm\inc\c\string.h E:\Software\IAR\arm\inc\c\stdio.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\gpio.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h \ | |||||
| E:\Software\IAR\arm\inc\c\ysizet.h E:\Software\IAR\arm\inc\c\stddef.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Include\mpu_armv7.h \ | |||||
| E:\Software\IAR\arm\inc\c\iccarm_builtin.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Include\cmsis_iccarm.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Include\cmsis_compiler.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Include\cmsis_version.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Product.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\Core\Src\main.c \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc\main.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc\stm32f4xx_hal_conf.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_rcc.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Device/ST/STM32F4xx/Include\stm32f4xx.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Include\core_cm4.h \ | |||||
| E:\Software\IAR\arm\inc\c\stdint.h E:\Software\IAR\arm\inc\c\ycheck.h \ | |||||
| E:\Software\IAR\arm\inc\c\yvals.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Defaults.h \ | E:\Software\IAR\arm\inc\c\DLib_Defaults.h \ | ||||
| E:\Software\IAR\arm\inc\c\yvals.h E:\Software\IAR\arm\inc\c\stdint.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Include\core_cm4.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f407xx.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\stm32f4xx_hal_conf.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\main.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\Core\Src\main.c | |||||
| E:\\Software\\IAR\\arm\\inc\\c\\DLib_Config_Full.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Product.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Include/cmsis_version.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Include/cmsis_compiler.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Include\cmsis_iccarm.h \ | |||||
| E:\Software\IAR\arm\inc\c\iccarm_builtin.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Include/mpu_armv7.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ | |||||
| E:\Software\IAR\arm\inc\c\stddef.h E:\Software\IAR\arm\inc\c\ysizet.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_gpio.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_exti.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_dma.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_cortex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_flash.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_pwr.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_tim.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_uart.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc\gpio.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc/main.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc/tim.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc/usart.h \ | |||||
| E:\Software\IAR\arm\inc\c\stdio.h E:\Software\IAR\arm\inc\c\string.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Product_string.h \ | |||||
| E:\Software\IAR\arm\inc\c\ctype.h E:\Software\IAR\arm\inc\c\stdlib.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Product_stdlib.h \ | |||||
| E:\Software\IAR\arm\inc\c\stdarg.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc/modbus_crc.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc/flash_save.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc/modbus_log.h \ | |||||
| E:\Software\IAR\arm\inc\c\math.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_float_setup.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Source\ucos_ii.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Config\app_cfg.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Config\os_cfg.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Ports\os_cpu.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Source/os_trace.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc\tim.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc\usart.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc\dma.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc\flash_save.h | |||||
| @@ -1,12 +1,13 @@ | |||||
| os_cpu_c.pbi: \ | os_cpu_c.pbi: \ | ||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Source\os_trace.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\UCOS\Ports\os_cpu.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Config\os_cfg.h \ | |||||
| E:\Software\IAR\arm\inc\c\ycheck.h E:\Software\IAR\arm\inc\c\ysizet.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Product.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Defaults.h \ | |||||
| E:\Software\IAR\arm\inc\c\yvals.h E:\Software\IAR\arm\inc\c\stdio.h \ | |||||
| E:\Software\IAR\arm\inc\c\stdarg.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Config\app_cfg.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\UCOS\Ports\os_cpu_c.c \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Source\ucos_ii.h \ | e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Source\ucos_ii.h \ | ||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\UCOS\Ports\os_cpu_c.c | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Config\app_cfg.h \ | |||||
| E:\Software\IAR\arm\inc\c\stdarg.h E:\Software\IAR\arm\inc\c\stdio.h \ | |||||
| E:\Software\IAR\arm\inc\c\ycheck.h E:\Software\IAR\arm\inc\c\yvals.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Defaults.h \ | |||||
| E:\\Software\\IAR\\arm\\inc\\c\\DLib_Config_Full.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Product.h \ | |||||
| E:\Software\IAR\arm\inc\c\ysizet.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Config\os_cfg.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\UCOS\Ports\os_cpu.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Source/os_trace.h | |||||
| @@ -1,53 +1,55 @@ | |||||
| tim.pbi: \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Source\os_trace.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Ports\os_cpu.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Config\os_cfg.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Config\app_cfg.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Source\ucos_ii.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_float_setup.h \ | |||||
| E:\Software\IAR\arm\inc\c\ycheck.h E:\Software\IAR\arm\inc\c\math.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\tim.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\usart.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\modbus_log.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\flash_save.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\modbus_crc.h \ | |||||
| E:\Software\IAR\arm\inc\c\stdarg.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Product_stdlib.h \ | |||||
| E:\Software\IAR\arm\inc\c\stdlib.h E:\Software\IAR\arm\inc\c\ctype.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Product_string.h \ | |||||
| E:\Software\IAR\arm\inc\c\string.h E:\Software\IAR\arm\inc\c\stdio.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_pwr.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ramfunc.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_flash.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_cortex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_dma.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_exti.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_gpio.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc_ex.h \ | |||||
| E:\Software\IAR\arm\inc\c\ysizet.h E:\Software\IAR\arm\inc\c\stddef.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\system_stm32f4xx.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Include\mpu_armv7.h \ | |||||
| E:\Software\IAR\arm\inc\c\iccarm_builtin.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Include\cmsis_iccarm.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Include\cmsis_compiler.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Include\cmsis_version.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Product.h \ | |||||
| tim.pbi: e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\Core\Src\tim.c \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc\tim.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc/main.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc\stm32f4xx_hal_conf.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_rcc.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Device/ST/STM32F4xx/Include\stm32f4xx.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Include\core_cm4.h \ | |||||
| E:\Software\IAR\arm\inc\c\stdint.h E:\Software\IAR\arm\inc\c\ycheck.h \ | |||||
| E:\Software\IAR\arm\inc\c\yvals.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Defaults.h \ | E:\Software\IAR\arm\inc\c\DLib_Defaults.h \ | ||||
| E:\Software\IAR\arm\inc\c\yvals.h E:\Software\IAR\arm\inc\c\stdint.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Include\core_cm4.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f407xx.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_def.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_rcc.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\stm32f4xx_hal_conf.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\main.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\Core\Src\tim.c | |||||
| E:\\Software\\IAR\\arm\\inc\\c\\DLib_Config_Full.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Product.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Include/cmsis_version.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Include/cmsis_compiler.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Include\cmsis_iccarm.h \ | |||||
| E:\Software\IAR\arm\inc\c\iccarm_builtin.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Include/mpu_armv7.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h \ | |||||
| E:\Software\IAR\arm\inc\c\stddef.h E:\Software\IAR\arm\inc\c\ysizet.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_rcc_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_gpio.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_gpio_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_exti.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_dma.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_cortex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_flash.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_flash_ramfunc.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_pwr.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_pwr_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_tim.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_tim_ex.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Drivers/STM32F4xx_HAL_Driver/Inc\stm32f4xx_hal_uart.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc/usart.h \ | |||||
| E:\Software\IAR\arm\inc\c\stdio.h E:\Software\IAR\arm\inc\c\string.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Product_string.h \ | |||||
| E:\Software\IAR\arm\inc\c\ctype.h E:\Software\IAR\arm\inc\c\stdlib.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_Product_stdlib.h \ | |||||
| E:\Software\IAR\arm\inc\c\stdarg.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc/modbus_crc.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc/flash_save.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc/modbus_log.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc/tim.h \ | |||||
| E:\Software\IAR\arm\inc\c\math.h \ | |||||
| E:\Software\IAR\arm\inc\c\DLib_float_setup.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Source\ucos_ii.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Config\app_cfg.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Config\os_cfg.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Ports\os_cpu.h \ | |||||
| e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\UCOS\Source/os_trace.h | |||||
| @@ -1,6 +1,6 @@ | |||||
| <mxfile host="65bd71144e"> | <mxfile host="65bd71144e"> | ||||
| <diagram id="WqJZujmxfrUlVBQZ9tah" name="第 1 页"> | <diagram id="WqJZujmxfrUlVBQZ9tah" name="第 1 页"> | ||||
| <mxGraphModel dx="1680" dy="1743" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" background="none" math="0" shadow="0"> | |||||
| <mxGraphModel dx="2168" dy="1757" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="827" pageHeight="1169" background="none" math="0" shadow="0"> | |||||
| <root> | <root> | ||||
| <mxCell id="0"/> | <mxCell id="0"/> | ||||
| <mxCell id="1" parent="0"/> | <mxCell id="1" parent="0"/> | ||||