소스 검색

修改了频率计算函数,优化效率

1
JIU JIALIN 1 개월 전
부모
커밋
d407c3762d
24개의 변경된 파일17443개의 추가작업 그리고 17183개의 파일을 삭제
  1. +15
    -18
      PLSR/PLSR/Core/Inc/tim.h
  2. +46
    -59
      PLSR/PLSR/Core/Src/main.c
  3. +242
    -217
      PLSR/PLSR/Core/Src/tim.c
  4. +9
    -9
      PLSR/PLSR/EWARM/settings/Project.wsdt
  5. +1
    -1
      PLSR/PLSR/EWARM/settings/test.1.dbgdt
  6. +12
    -12
      PLSR/PLSR/EWARM/settings/test.1.dnx
  7. +551
    -551
      PLSR/PLSR/EWARM/test.1.dep
  8. +60
    -140
      PLSR/PLSR/EWARM/test.1/Obj/.ninja_log
  9. BIN
      PLSR/PLSR/EWARM/test.1/Obj/gpio.pbi
  10. BIN
      PLSR/PLSR/EWARM/test.1/Obj/main.pbi
  11. +59
    -53
      PLSR/PLSR/EWARM/test.1/Obj/main.pbi.dep
  12. +11
    -10
      PLSR/PLSR/EWARM/test.1/Obj/os_cpu_c.pbi.dep
  13. BIN
      PLSR/PLSR/EWARM/test.1/Obj/test.1.pbd
  14. BIN
      PLSR/PLSR/EWARM/test.1/Obj/test.1.pbd.browse
  15. +16382
    -16060
      PLSR/PLSR/EWARM/test.1/Obj/test.1.pbw
  16. BIN
      PLSR/PLSR/EWARM/test.1/Obj/test.1_part0.pbi
  17. BIN
      PLSR/PLSR/EWARM/test.1/Obj/test.1_part1.pbi
  18. BIN
      PLSR/PLSR/EWARM/test.1/Obj/tim.pbi
  19. +54
    -52
      PLSR/PLSR/EWARM/test.1/Obj/tim.pbi.dep
  20. BIN
      PLSR/PLSR/EWARM/test.1/Obj/usart.pbi
  21. BIN
      参数表-初版.xlsx
  22. +1
    -1
      思路.drawio
  23. BIN
      设计方案书.doc
  24. BIN
      需求规格书.doc

+ 15
- 18
PLSR/PLSR/Core/Inc/tim.h 파일 보기

@@ -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_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中断计数

// 等待条件类型枚举
@@ -171,22 +181,19 @@ typedef struct {
// 运行状态参数
PLSR_RunState_t run_state; // 当前运行状态
// 三部分脉冲计数(重新定义用途)
// 三部分脉冲计数
int32_t accel_pulse_count; // 第一部分脉冲数(可能是加速、减速或匀速)
int32_t const_pulse_count; // 第二部分脉冲数(匀速)
int32_t decel_pulse_count; // 第三部分脉冲数(减速到0)
// 新增:三部分状态标识
PLSR_RunState_t part1_state; // 第一部分状态(ACCEL/DECEL/CONST)
PLSR_RunState_t part2_state; // 第二部分状态(通常是CONST)
PLSR_RunState_t part3_state; // 第三部分状态(通常是DECEL)
// 新增:三部分目标频率
uint32_t part1_target_freq; // 第一部分目标频率
uint32_t part2_target_freq; // 第二部分目标频率(匀速频率)
uint32_t part3_target_freq; // 第三部分目标频率(通常是0)
// 新增:当前执行部分
uint8_t current_part; // 当前执行部分:1-第一部分,2-第二部分,3-第三部分
uint32_t freq_step; // 频率步长
@@ -207,21 +214,12 @@ typedef struct {

// 三部分执行状态枚举
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_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控制函数 ====================
void PLSR_PWM_Init(void);
@@ -230,7 +228,6 @@ void PLSR_PWM_Stop(void);
void PLSR_PWM_SetFrequency(uint32_t frequency);

// ==================== PLSR路径控制函数 ====================
void PLSR_Route_Init(PLSR_RouteConfig_t* route); //<路径初始化
void PLSR_Route_Set(PLSR_RouteConfig_t* route); //<用户修改完参数后需要调用一次该函数,进行数据更新
void PLSR_Route_Start(PLSR_RouteConfig_t* route); //<路径开始
void PLSR_Route_Stop(PLSR_RouteConfig_t* route); //<路径停止
@@ -246,8 +243,8 @@ void PLSR_SetupThreePartExecution(PLSR_RouteConfig_t* route); //<设置三部分
// ==================== PLSR加减速算法函数 ====================
void PLSR_Accel_Process(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_Sine(PLSR_RouteConfig_t* route, uint8_t is_accel); //<正弦加减速频率计算
uint32_t integer_sqrt_64(uint64_t x); //<64位整数开平方函数

// ==================== PLSR等待条件处理函数 ====================


+ 46
- 59
PLSR/PLSR/Core/Src/main.c 파일 보기

@@ -69,6 +69,50 @@ void SystemClock_Config(void);

/* Private user code ---------------------------------------------------------*/
/* 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 */

@@ -119,67 +163,16 @@ int main(void)
(void *)0,
OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
if (err != OS_ERR_NONE) {
/* 任务创建失败处理 */
if (err != OS_ERR_NONE)
{
while(1);
}
// /* 启动uC/OS-II */
OSStart();
/* USER CODE END 2 */

/* Infinite loop */
/* USER CODE BEGIN WHILE */
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 */
@@ -253,8 +246,6 @@ static void MODBUSTask(void *p_arg)
Modbus_Process();
OSTimeDlyHMSM(0, 0, 0, 1); /* 延时10ms */
}

}
static void KeyTask(void *p_arg)
{
@@ -263,7 +254,6 @@ static void KeyTask(void *p_arg)
OSTimeDly(2000); //<等待硬件完全初始化.
uint8_t startflag = 0;
// 初始化PLSR路径配置
PLSR_Route_Init(&g_plsr_route);
// PLSR_Route_Start(&g_plsr_route);
while (1)
{
@@ -276,7 +266,6 @@ static void KeyTask(void *p_arg)
{
if(startflag == 1)
{
PLSR_Route_Init(&g_plsr_route);
PLSR_Route_Start(&g_plsr_route);
startflag = 0;
}
@@ -288,8 +277,6 @@ static void KeyTask(void *p_arg)

/* USER CODE END 4 */

// HAL_TIM_PeriodElapsedCallback函数已移至timer.c文件中统一管理

/**
* @brief This function is executed in case of error occurrence.
* @retval None


+ 242
- 217
PLSR/PLSR/Core/Src/tim.c 파일 보기

@@ -64,14 +64,12 @@ void PLSR_Wait_StartTimer(PLSR_RouteConfig_t* route)
s_wait_time_target = wait_cond->wait_time_ms;
s_wait_time_counter = 0;
s_wait_time_flag = 0;
//PLSR_TIM6_Start();
break;
case PLSR_WAIT_ACT_TIME:
s_act_time_target = wait_cond->act_time_ms;
s_act_time_counter = 0;
s_act_time_flag = 0;
//PLSR_TIM6_Start();
break;
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_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 part3_pulse_num = 0; // 第三部分脉冲数
uint32_t part1_time = 0; // 第一部分时间(ms)
uint32_t part2_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 vt = current_section->target_freq; // 期望目标频率
uint32_t vf = 0; // 最终频率(必须为0)
uint32_t a = route->accel_rate; // 加速度
uint32_t d = route->decel_rate; // 减速度
@@ -1262,7 +1174,7 @@ void Calculate_PluseNum(PLSR_RouteConfig_t *route)
// 三部分运动规划:
// 第一部分:从v0到vt(加速或减速或保持)
// 第二部分:在vt保持匀速
// 第三部分:从vt减速到0
// 第三部分:从vt减速到route->end_freq
// 计算第一部分:v0 -> vt
PLSR_RunState_t part1_state = PLSR_STATE_CONST; // 默认匀速
@@ -1320,12 +1232,7 @@ void Calculate_PluseNum(PLSR_RouteConfig_t *route)
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) {
// 脉冲数不足,需要调整运动参数
@@ -1431,15 +1338,13 @@ void Calculate_PluseNum(PLSR_RouteConfig_t *route)
else {
part2_pulse_num = 0;
}
// 保存三个部分的状态和脉冲计数到结构体
// 使用现有的字段来存储三个部分的信息
// 第一部分
if (part1_state == PLSR_STATE_ACCEL) {
if (part1_state == PLSR_STATE_ACCEL)
{
route->accel_pulse_count = part1_pulse_num;
} else {
}
else
{
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)
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->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->route_state == PLSR_ROUTE_RUNNING)
return;
// 初始化路径基本参数
route->route_state = PLSR_ROUTE_IDLE; // 路径状态:空闲
route->current_freq = 0; // 当前频率:0Hz
route->target_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->const_pulse_count = 0; // 匀速脉冲计数:清零
route->freq_step = 0; // 频率步进值:清零
route->wait_start_tick = 0; // 等待开始时刻:清零
route->act_start_tick = 0; // ACT开始时刻:清零

// 初始化模式相关参数
route->prevPulseCount = 0; // 累积脉冲计数:清零
route->pulse_count = 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);
@@ -1760,19 +1643,17 @@ void PLSR_Route_Start(PLSR_RouteConfig_t* route)
route->current_freq = route->start_freq; // 设置当前频率为起始频率
route->initial_freq = route->start_freq; // 设置加减速初始频率为起始频率
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用于频率更新和等待时间计时
HAL_TIM_Base_Start_IT(&htim2); // 启动TIM2中断用于段切换
PLSR_PWM_Stop();
// 启动第一段
PLSR_Section_StartNewSection(route);

switch (route->output_port)
{
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;
@@ -2163,10 +2044,6 @@ void PLSR_SetupThreePartExecution(PLSR_RouteConfig_t* route)
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;
}
// 外部事件触发时保持当前频率不变,确保频率连续性
}


@@ -2260,17 +2136,8 @@ uint32_t PLSR_Calculate_FreqByPosition(PLSR_RouteConfig_t* route, uint8_t is_acc
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;
}
executed_pulses = current_tim2_count;
next_executed_pulses = current_tim2_count + 1;
// 检查是否需要重新计算:脉冲步数、加减速状态或段号发生变化时才重新计算
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;
}

// 正弦函数近似计算(输入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 加减速处理函数
* @param route: 路径控制结构体指针
@@ -2411,16 +2444,30 @@ void PLSR_Accel_Process(PLSR_RouteConfig_t* route)
// ==================== 加速处理 ====================
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; // 限制到目标频率
}
// 只有当计算出的频率与当前频率不同时才更新
if (calculated_freq != route->current_freq) {
if (calculated_freq != route->current_freq)
{
route->current_freq = calculated_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);
// 检查是否达到目标频率
if (calculated_freq <= route->target_freq) {
if (calculated_freq <= route->target_freq)
{
calculated_freq = route->target_freq; // 限制到目标频率
// 如果目标频率为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 任务中执行段切换逻辑
@@ -2538,9 +2566,6 @@ void PLSR_TaskSectionSwitch(PLSR_RouteConfig_t* route)
PLSR_Section_SwitchNext(route, 0); // 外部事件触发,传入0
/* 启动新段,设置新的脉冲参数和频率 */
PLSR_Section_StartNewSection(route);
// /* 启动PWM输出 */
// PLSR_PWM_Start();
PLSR_ClearGpioTriggerFlag(); // 清除GPIO触发标志
}
return; // 等待外部事件时不需要继续处理
}
@@ -2568,8 +2593,6 @@ void PLSR_TaskSectionSwitch(PLSR_RouteConfig_t* route)
PLSR_Section_SwitchNext(route, 1); // 脉冲完成触发,传入1
/* 启动新段,设置新的脉冲参数和频率 */
PLSR_Section_StartNewSection(route);
// /* 启动PWM输出 */
// PLSR_PWM_Start();
}
}
else
@@ -2581,8 +2604,6 @@ void PLSR_TaskSectionSwitch(PLSR_RouteConfig_t* route)
PLSR_Section_SwitchNext(route, 0); // 其他等待条件触发,传入0
/* 启动新段,设置新的脉冲参数和频率 */
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 ||
current_section->wait_condition.wait_type == PLSR_WAIT_EXT_OR_END)
{
{
int32_t target_pulse = current_section->actual_pulse;
if(target_pulse < 0) target_pulse = -target_pulse;
target_pulse += route->prevPulseCount; // 累加上次的脉冲计数
@@ -2699,6 +2720,8 @@ void PLSR_ClearExtEvent(PLSR_RouteConfig_t* route)
// 清除外部事件标志
wait_cond->ext_event_flag = 0;
// /* 启动PWM输出 */
PLSR_ClearGpioTriggerFlag(); // 清除GPIO触发标志
}

// ==================== PLSR实时段切换任务实现 ====================
@@ -2751,11 +2774,13 @@ void PLSR_SectionSwitchTask(void *p_arg)
(void)p_arg; // 避免编译器警告
while (1) {
while (1)
{
/* 等待段切换信号量 */
OSSemPend(s_section_switch_sem, 0, &err);
if (err == OS_ERR_NONE) {
if (err == OS_ERR_NONE)
{
/* 信号量获取成功,执行段切换逻辑 */
PLSR_TaskSectionSwitch(&g_plsr_route);
}


+ 9
- 9
PLSR/PLSR/EWARM/settings/Project.wsdt
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 1
- 1
PLSR/PLSR/EWARM/settings/test.1.dbgdt 파일 보기

@@ -1041,7 +1041,7 @@
<item>s_last_total_pulse</item>
<item>current_pulse_count</item>
<item>g_plsr_total_pulse_count</item>
<item></item>
<item />
</expressions>
<col-names>
<item>Expression</item>


+ 12
- 12
PLSR/PLSR/EWARM/settings/test.1.dnx 파일 보기

@@ -14,10 +14,10 @@
<StLinkDriver>
<stlinkserialNo>46232557</stlinkserialNo>
<stlinkfoundProbes />
<CStepIntDis>_ 0</CStepIntDis>
<LeaveTargetRunning>_ 0</LeaveTargetRunning>
<stlinkResetStyle>0</stlinkResetStyle>
<stlinkResetStrategy>2</stlinkResetStrategy>
<CStepIntDis>_ 0</CStepIntDis>
<LeaveTargetRunning>_ 0</LeaveTargetRunning>
</StLinkDriver>
<DebugChecksum>
<Checksum>3785312791</Checksum>
@@ -84,13 +84,6 @@
<LogFile>_ ""</LogFile>
<Category>_ 0</Category>
</LogFile>
<DisassembleMode>
<mode>0</mode>
</DisassembleMode>
<Aliases>
<Count>0</Count>
<SuppressDialog>0</SuppressDialog>
</Aliases>
<Trace2>
<Enabled>0</Enabled>
<ShowSource>0</ShowSource>
@@ -136,9 +129,6 @@
<ShowTimeSum>1</ShowTimeSum>
<SumSortOrder>0</SumSortOrder>
</EventLog>
<Breakpoints2>
<Count>0</Count>
</Breakpoints2>
<DriverProfiling>
<Enabled>0</Enabled>
<Mode>3</Mode>
@@ -152,4 +142,14 @@
<CallStackStripe>
<ShowTiming>1</ShowTiming>
</CallStackStripe>
<DisassembleMode>
<mode>0</mode>
</DisassembleMode>
<Breakpoints2>
<Count>0</Count>
</Breakpoints2>
<Aliases>
<Count>0</Count>
<SuppressDialog>0</SuppressDialog>
</Aliases>
</settings>

+ 551
- 551
PLSR/PLSR/EWARM/test.1.dep
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


+ 60
- 140
PLSR/PLSR/EWARM/test.1/Obj/.ninja_log 파일 보기

@@ -1,143 +1,63 @@
# 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
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
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

BIN
PLSR/PLSR/EWARM/test.1/Obj/gpio.pbi 파일 보기


BIN
PLSR/PLSR/EWARM/test.1/Obj/main.pbi 파일 보기


+ 59
- 53
PLSR/PLSR/EWARM/test.1/Obj/main.pbi.dep 파일 보기

@@ -1,55 +1,61 @@
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\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

+ 11
- 10
PLSR/PLSR/EWARM/test.1/Obj/os_cpu_c.pbi.dep 파일 보기

@@ -1,12 +1,13 @@
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\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

BIN
PLSR/PLSR/EWARM/test.1/Obj/test.1.pbd 파일 보기


BIN
PLSR/PLSR/EWARM/test.1/Obj/test.1.pbd.browse 파일 보기


+ 16382
- 16060
PLSR/PLSR/EWARM/test.1/Obj/test.1.pbw
파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
파일 보기


BIN
PLSR/PLSR/EWARM/test.1/Obj/test.1_part0.pbi 파일 보기


BIN
PLSR/PLSR/EWARM/test.1/Obj/test.1_part1.pbi 파일 보기


BIN
PLSR/PLSR/EWARM/test.1/Obj/tim.pbi 파일 보기


+ 54
- 52
PLSR/PLSR/EWARM/test.1/Obj/tim.pbi.dep 파일 보기

@@ -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\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

BIN
PLSR/PLSR/EWARM/test.1/Obj/usart.pbi 파일 보기


BIN
参数表-初版.xlsx 파일 보기


+ 1
- 1
思路.drawio 파일 보기

@@ -1,6 +1,6 @@
<mxfile host="65bd71144e">
<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>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>


BIN
设计方案书.doc 파일 보기


BIN
需求规格书.doc 파일 보기


불러오는 중...
취소
저장