Bladeren bron

曲线加速过程可以接受,但是减速过程效果很差

2
JIU JIALIN 3 weken geleden
bovenliggende
commit
f301f764ea
77 gewijzigde bestanden met toevoegingen van 23907 en 22893 verwijderingen
  1. +6
    -11
      PLSR/PLSR/Core/Inc/tim.h
  2. +23
    -6
      PLSR/PLSR/Core/Src/tim.c
  3. +327
    -325
      PLSR/PLSR/Core/Src/tools.c
  4. +4
    -4
      PLSR/PLSR/EWARM/settings/Project.wsdt
  5. +4
    -4
      PLSR/PLSR/EWARM/settings/test.1.dbgdt
  6. +1
    -1
      PLSR/PLSR/EWARM/settings/test.1.dnx
  7. +674
    -674
      PLSR/PLSR/EWARM/test.1.dep
  8. +3
    -3
      PLSR/PLSR/EWARM/test.1.ewp
  9. +2898
    -2221
      PLSR/PLSR/EWARM/test.1/Exe/test.1.hex
  10. BIN
      PLSR/PLSR/EWARM/test.1/Exe/test.1.out
  11. BIN
      PLSR/PLSR/EWARM/test.1/Exe/test.1.sim
  12. +1146
    -974
      PLSR/PLSR/EWARM/test.1/List/test.1.map
  13. +85
    -61
      PLSR/PLSR/EWARM/test.1/Obj/.ninja_log
  14. BIN
      PLSR/PLSR/EWARM/test.1/Obj/app_hooks.o
  15. BIN
      PLSR/PLSR/EWARM/test.1/Obj/dma.o
  16. BIN
      PLSR/PLSR/EWARM/test.1/Obj/flash_save.o
  17. BIN
      PLSR/PLSR/EWARM/test.1/Obj/gpio.o
  18. BIN
      PLSR/PLSR/EWARM/test.1/Obj/gpio.pbi
  19. BIN
      PLSR/PLSR/EWARM/test.1/Obj/main.pbi
  20. +62
    -55
      PLSR/PLSR/EWARM/test.1/Obj/main.pbi.dep
  21. BIN
      PLSR/PLSR/EWARM/test.1/Obj/modbus_crc.o
  22. BIN
      PLSR/PLSR/EWARM/test.1/Obj/modbus_log.o
  23. BIN
      PLSR/PLSR/EWARM/test.1/Obj/modbus_log.pbi
  24. BIN
      PLSR/PLSR/EWARM/test.1/Obj/os_cpu_a.o
  25. BIN
      PLSR/PLSR/EWARM/test.1/Obj/os_dbg.o
  26. BIN
      PLSR/PLSR/EWARM/test.1/Obj/startup_stm32f407xx.o
  27. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal.o
  28. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_cortex.o
  29. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_crc.o
  30. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_dma.o
  31. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_dma_ex.o
  32. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_exti.o
  33. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_flash.o
  34. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_flash_ex.o
  35. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_flash_ramfunc.o
  36. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_gpio.o
  37. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_i2c.o
  38. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_i2c_ex.o
  39. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_msp.o
  40. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_pwr.o
  41. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_pwr_ex.o
  42. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_rcc.o
  43. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_rcc_ex.o
  44. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_sram.o
  45. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_tim.o
  46. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_tim_ex.o
  47. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_timebase_tim.o
  48. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_uart.o
  49. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_usart.o
  50. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_wwdg.o
  51. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_it.o
  52. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_crc.o
  53. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_dac.o
  54. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_dma.o
  55. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_exti.o
  56. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_gpio.o
  57. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_i2c.o
  58. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_pwr.o
  59. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_rcc.o
  60. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_rng.o
  61. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_spi.o
  62. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_tim.o
  63. BIN
      PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_usart.o
  64. BIN
      PLSR/PLSR/EWARM/test.1/Obj/system_stm32f4xx.o
  65. BIN
      PLSR/PLSR/EWARM/test.1/Obj/test.1.pbd
  66. BIN
      PLSR/PLSR/EWARM/test.1/Obj/test.1.pbd.browse
  67. +18620
    -18496
      PLSR/PLSR/EWARM/test.1/Obj/test.1.pbw
  68. BIN
      PLSR/PLSR/EWARM/test.1/Obj/test.1_part0.pbi
  69. BIN
      PLSR/PLSR/EWARM/test.1/Obj/test.1_part1.pbi
  70. BIN
      PLSR/PLSR/EWARM/test.1/Obj/tim.o
  71. BIN
      PLSR/PLSR/EWARM/test.1/Obj/tim.pbi
  72. +54
    -58
      PLSR/PLSR/EWARM/test.1/Obj/tim.pbi.dep
  73. BIN
      PLSR/PLSR/EWARM/test.1/Obj/tools.o
  74. BIN
      PLSR/PLSR/EWARM/test.1/Obj/tools.pbi
  75. BIN
      PLSR/PLSR/EWARM/test.1/Obj/ucos_ii.o
  76. BIN
      PLSR/PLSR/EWARM/test.1/Obj/usart.o
  77. BIN
      PLSR/PLSR/EWARM/test.1/Obj/usart.pbi

+ 6
- 11
PLSR/PLSR/Core/Inc/tim.h Bestand weergeven

@@ -33,6 +33,7 @@ extern "C" {
#include "app_cfg.h"
#include "gpio.h"
#include <intrinsics.h>
#include <math.h>
/* USER CODE BEGIN Includes */

/* USER CODE END Includes */
@@ -108,16 +109,6 @@ typedef enum {
PLSR_DIR_REVERSE = 1 // 反向
} PLSR_Direction_t;

/**
* @brief PLSR错误代码枚举
*/
typedef enum {
PLSR_ERROR_NONE = 0, ///< 无错误
PLSR_ERROR_FREQ_OUT_OF_RANGE = 1, ///< 频率超出范围
PLSR_ERROR_PARAM_CALC_FAILED = 2, ///< 参数计算失败
PLSR_ERROR_TIMER_CONFIG_FAILED = 3, ///< 定时器配置失败
PLSR_ERROR_HARDWARE_FAULT = 4 ///< 硬件故障
} PLSR_ErrorCode_t;
/* USER CODE END Private defines */

void MX_TIM2_Init(void); // TIM2恢复用于脉冲计数
@@ -176,6 +167,8 @@ typedef struct
uint32_t part1_target_freq; ///< 第一部分目标频率
uint32_t part2_target_freq; ///< 第二部分目标频率(匀速频率)
uint32_t part3_target_freq; ///< 第三部分目标频率(通常是0)
uint32_t part1_time;
uint32_t part3_time;
uint32_t freq_step; ///< 频率步长
uint32_t default_freq; ///< 脉冲默认速度

@@ -214,7 +207,6 @@ typedef struct
uint8_t ext_port; ///< 外部事件端口选择
uint8_t dir_port; ///< 方向端口选择
uint8_t current_part; ///< 当前执行部分:1-第一部分,2-第二部分,3-第三部分
PLSR_ErrorCode_t error_code; ///< 错误代码
} PLSR_RouteConfig_t;

// 三部分执行状态枚举
@@ -260,6 +252,9 @@ 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_SCurve_FreqByPosition(PLSR_RouteConfig_t* route, uint8_t is_accel);
uint32_t PLSR_SCurve_Control(PLSR_RouteConfig_t* route);
void SCurve_InitializeParameters(PLSR_RouteConfig_t* route, uint32_t accel_time_ms, uint32_t decel_time_ms);

// ==================== PLSR TIM6频率配置函数 ====================
void PLSR_TIM6_SetUpdateFreq(uint32_t freq_us);


+ 23
- 6
PLSR/PLSR/Core/Src/tim.c Bestand weergeven

@@ -1595,7 +1595,7 @@ uint8_t PLSR_Section_StartNewSection(PLSR_RouteConfig_t* route)
PLSR_ClearExtEvent(route);

if(PlsrRoute.accel_config.accel_algorithm == PLSR_ACCEL_CURVE)
SCurve_InitializeParameters(&PlsrRoute); //计算曲线加减速需要的参数.
SCurve_InitializeParameters(&PlsrRoute,route->part1_time,route->part3_time); //计算曲线加减速需要的参数.
return 1;
}

@@ -1950,9 +1950,17 @@ 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;
if(route->accel_config.accel_algorithm == PLSR_ACCEL_LINEAR)
{
// 根据当前脉冲位置计算频率(传入1表示加速过程)
calculated_freq = PLSR_Calculate_FreqByPosition(route, 1);
}
else
{
// 参数有效,可以开始使用S曲线控制
calculated_freq = PLSR_SCurve_Control(route);
}
// 检查是否达到目标频率
if (calculated_freq >= route->target_freq)
{
@@ -1999,8 +2007,17 @@ void PLSR_Accel_Process(PLSR_RouteConfig_t* route)
{
// 根据当前脉冲位置计算频率(传入0表示减速过程)
// 使用速度位移公式 vt^2 = v0^2 - 2ax 计算当前脉冲的下一个脉冲频率
uint32_t calculated_freq = PLSR_Calculate_FreqByPosition(route, 0);
uint32_t calculated_freq = 0;
if(route->accel_config.accel_algorithm == PLSR_ACCEL_LINEAR)
{
// 根据当前脉冲位置计算频率(传入1表示加速过程)
calculated_freq = PLSR_Calculate_FreqByPosition(route, 0);
}
else
{
// 参数有效,可以开始使用S曲线控制
calculated_freq = PLSR_SCurve_Control(route);
}
// 检查是否达到目标频率
if (calculated_freq <= route->target_freq)
{


+ 327
- 325
PLSR/PLSR/Core/Src/tools.c Bestand weergeven

@@ -225,9 +225,7 @@ void Calculate_PluseNum(PLSR_RouteConfig_t *route)
// 获取当前段配置(段号从1开始,数组索引从0开始)
PLSR_SectionConfig_t* current_section = &route->section[route->current_section_num - 1];
// 只处理线性加减速算法
if (route->accel_config.accel_algorithm == PLSR_ACCEL_LINEAR)
{

uint32_t v0 = route->current_freq; // 起始频率
uint32_t vt_desired = current_section->target_freq; // 期望目标频率
uint32_t vt = vt_desired; // 实际目标频率(可能会被调整)
@@ -424,6 +422,8 @@ void Calculate_PluseNum(PLSR_RouteConfig_t *route)
route->part1_state = part1_state;
route->part2_state = part2_state;
route->part3_state = part3_state;
route->part1_time = part1_time;
route->part3_time = part3_time;
route->part1_target_freq = vt;
route->part2_target_freq = vt;
route->part3_target_freq = 0;
@@ -446,7 +446,6 @@ void Calculate_PluseNum(PLSR_RouteConfig_t *route)
route->run_state = PLSR_STATE_CONST;
route->target_freq = v0;
}
}
}


@@ -618,363 +617,366 @@ void PLSR_Accel_UpdateRates(PLSR_RouteConfig_t* route)
}
}

/* ==================== 快速立方根近似 ==================== */
static uint32_t cbrt_approx(uint64_t x)
{
if (x == 0) return 0;
/* 使用位操作快速初始估算 */
uint32_t guess;
if (x >= 1000000000ULL) guess = 1000;
else if (x >= 1000000ULL) guess = 100;
else if (x >= 1000ULL) guess = 10;
else guess = 1;
/* 牛顿法迭代:x_{n+1} = (2*x_n + a/x_n²) / 3 */
for (int i = 0; i < 3; i++) {
uint64_t guess_sq = (uint64_t)guess * guess;
if (guess_sq == 0) break;
guess = (uint32_t)((2ULL * guess + x / guess_sq) / 3);
}
return guess;
}

/* ==================== S曲线参数初始化函数 ==================== */
void SCurve_InitializeParameters(PLSR_RouteConfig_t* route)
/**
* @brief S曲线加减速参数初始化
* @param route 路径配置结构体指针
* @param accel_time_ms 加速时间(毫秒)
* @param decel_time_ms 减速时间(毫秒)
*/
void SCurve_InitializeParameters(PLSR_RouteConfig_t* route, uint32_t accel_time_ms, uint32_t decel_time_ms)
{
if (route == NULL) return;
/* 输入参数验证和预处理 */
const uint32_t accel_rate = (route->accel_rate == 0) ? 1 : route->accel_rate; // Hz/ms
const uint32_t decel_rate = (route->decel_rate == 0) ? 1 : route->decel_rate; // Hz/ms
/* ============ 加速段参数计算 ============ */
uint32_t vel_start_accel = route->initial_freq;
uint32_t vel_target_accel = route->part1_target_freq;
if (vel_target_accel > PLSR_PWM_FREQ_MAX) {
vel_target_accel = PLSR_PWM_FREQ_MAX;
}
uint32_t delta_vel_accel = (vel_target_accel > vel_start_accel) ?
(vel_target_accel - vel_start_accel) : 0;
if (delta_vel_accel > 0)
if (accel_time_ms > 0)
{
/* 计算加速时间参数 */
uint32_t total_accel_time_ms = CLAMP_MIN(delta_vel_accel / accel_rate, 1);
uint32_t jerk_time_ms = CLAMP_MIN(total_accel_time_ms / 2, 1);
/* 关键公式:Δv = J·Tj²,因此 J = Δv / Tj² */
uint32_t jerk = (uint32_t)DIV_ROUND((uint64_t)delta_vel_accel * 1000ULL,
(uint64_t)jerk_time_ms * jerk_time_ms);
uint32_t max_accel = (jerk * jerk_time_ms) / 1000; // 转换单位
/* 脉冲数计算 - 使用精确积分公式 */
uint64_t T = jerk_time_ms;
uint64_t T_sq = T * T;
uint64_t T_cu = T_sq * T;
/* 第一阶段: s₁ = v₀·T + (1/6)·J·T³ */
uint64_t phase1_displacement = (uint64_t)vel_start_accel * T +
((uint64_t)jerk * T_cu) / 6000; // 除以6000而不是6是因为单位换算
uint32_t phase1_pulses = (uint32_t)DIV_ROUND(phase1_displacement, 1000);
/* 第二阶段:中间速度计算 */
uint32_t vel_mid = vel_start_accel + (uint32_t)((jerk * T_sq) / 2000);
uint32_t vel_start = route->initial_freq; // V0
uint32_t vel_target = route->part1_target_freq; // Vt
/* 第二阶段位移:s₂ = v_mid·T - (1/6)·J·T³ (注意减号,因为是减jerk阶段)*/
uint64_t phase2_displacement = (uint64_t)vel_mid * T -
((uint64_t)jerk * T_cu) / 6000;
uint32_t phase2_pulses = (uint32_t)DIV_ROUND(phase2_displacement, 1000);
/* 归一化到实际脉冲总数,防止舍入误差 */
uint32_t calculated_total = phase1_pulses + phase2_pulses;
uint32_t actual_total = route->accel_pulse_count;
if (calculated_total != actual_total && calculated_total > 0) {
if (actual_total > calculated_total)
{
phase2_pulses += (actual_total - calculated_total);
}
else
{
phase1_pulses = (uint32_t)(((uint64_t)phase1_pulses * actual_total) / calculated_total);
phase2_pulses = actual_total - phase1_pulses;
}
if (vel_target > vel_start)
{
uint32_t delta_v = vel_target - vel_start;
uint32_t Tj = accel_time_ms / 2; // 到达最大加速度的时间(加速时间的一半)
// 加加速度计算:J = 4*Vt/(Tt^2) = 4*delta_v/(accel_time_ms^2)
uint64_t jerk_numerator = 4ULL * delta_v * 1000ULL; // 乘1000进行单位换算
uint64_t jerk_denominator = (uint64_t)accel_time_ms * accel_time_ms;
uint32_t jerk = (uint32_t)(jerk_numerator / jerk_denominator); // Hz/ms²
// 最大加速度:Amax = J * Tj
uint32_t max_accel = (jerk * Tj) / 1000; // Hz/ms
// 加加速过程的脉冲数:N1 = (1/6) * J * Tj^3
uint64_t Tj_cubed = (uint64_t)Tj * Tj * Tj;
uint64_t phase1_pulses_calc = (jerk * Tj_cubed) / (6ULL * 1000ULL * 1000ULL); // 单位换算
// 减加速过程的脉冲数:N2 = V0*Tj + (5/6)*J*Tj^3
uint64_t phase2_term1 = (uint64_t)vel_start * Tj / 1000; // V0*Tj转换为脉冲数
uint64_t phase2_term2 = (5ULL * jerk * Tj_cubed) / (6ULL * 1000ULL * 1000ULL);
uint64_t phase2_pulses_calc = phase2_term1 + phase2_term2;
// 存储加速段参数
route->scurve.accel_jerk = jerk;
route->scurve.accel_max = max_accel;
route->scurve.accel_jerk_time_ms = Tj;
route->scurve.accel_phase1_pulses = (uint32_t)phase1_pulses_calc;
route->scurve.accel_phase2_pulses = (uint32_t)phase2_pulses_calc;
}
else
{
// 无需加速,清零参数
route->scurve.accel_jerk = 0;
route->scurve.accel_max = 0;
route->scurve.accel_jerk_time_ms = 0;
route->scurve.accel_phase1_pulses = 0;
route->scurve.accel_phase2_pulses = 0;
}
/* 存储加速段参数 */
route->scurve.accel_jerk = jerk;
route->scurve.accel_max = max_accel;
route->scurve.accel_jerk_time_ms = jerk_time_ms;
route->scurve.accel_phase1_pulses = phase1_pulses;
route->scurve.accel_phase2_pulses = phase2_pulses;
}
else
{
/* 无加速段,清零参数 */
route->scurve.accel_jerk = 0;
route->scurve.accel_max = 0;
route->scurve.accel_jerk_time_ms = 0;
route->scurve.accel_phase1_pulses = 0;
route->scurve.accel_phase2_pulses = 0;
}
/* ============ 减速段参数计算 ============ */
uint32_t vel_start_decel = route->initial_freq;
uint32_t vel_target_decel = route->part3_target_freq;
if (vel_start_decel > PLSR_PWM_FREQ_MAX) {
vel_start_decel = PLSR_PWM_FREQ_MAX;
}
uint32_t delta_vel_decel = (vel_start_decel > vel_target_decel) ?
(vel_start_decel - vel_target_decel) : 0;
if (delta_vel_decel > 0) {
/* 计算减速时间参数 */
uint32_t total_decel_time_ms = CLAMP_MIN(delta_vel_decel / decel_rate, 1);
uint32_t jerk_time_ms = CLAMP_MIN(total_decel_time_ms / 2, 1);
/* 减速jerk计算 */
uint32_t jerk = (uint32_t)DIV_ROUND((uint64_t)delta_vel_decel * 1000ULL,
(uint64_t)jerk_time_ms * jerk_time_ms);
uint32_t max_decel = (jerk * jerk_time_ms) / 1000;
/* 减速段脉冲数计算 */
uint64_t T = jerk_time_ms;
uint64_t T_sq = T * T;
uint64_t T_cu = T_sq * T;
/* 第一阶段(减速开始): s₁ = v₀·T - (1/6)·J·T³ (减号,因为是减速)*/
uint64_t phase1_displacement = (uint64_t)vel_start_decel * T -
((uint64_t)jerk * T_cu) / 6000;
/* 防止负数 */
if ((int64_t)phase1_displacement < 0) phase1_displacement = 0;
uint32_t phase1_pulses = (uint32_t)DIV_ROUND(phase1_displacement, 1000);
/* 第二阶段:中间速度 */
uint32_t vel_mid = (vel_start_decel > (jerk * T_sq) / 2000) ?
vel_start_decel - (jerk * T_sq) / 2000 : 0;
/* 第二阶段位移:s₂ = v_mid·T + (1/6)·J·T³ (加号,因为是减jerk阶段)*/
uint64_t phase2_displacement = (uint64_t)vel_mid * T +
((uint64_t)jerk * T_cu) / 6000;
uint32_t phase2_pulses = (uint32_t)DIV_ROUND(phase2_displacement, 1000);
if (decel_time_ms > 0)
{
uint32_t vel_start_decel = route->part2_target_freq; // 减速起始速度
uint32_t vel_target_decel = route->part3_target_freq; // 减速目标速度
/* 归一化到实际脉冲总数 */
uint32_t calculated_total = phase1_pulses + phase2_pulses;
uint32_t actual_total = route->decel_pulse_count;
if (calculated_total != actual_total && calculated_total > 0) {
if (actual_total > calculated_total) {
phase2_pulses += (actual_total - calculated_total);
} else {
phase1_pulses = (uint32_t)(((uint64_t)phase1_pulses * actual_total) / calculated_total);
phase2_pulses = actual_total - phase1_pulses;
}
if (vel_start_decel > vel_target_decel)
{
uint32_t delta_v = vel_start_decel - vel_target_decel;
uint32_t Tj = decel_time_ms / 2; // 到达最大减速度的时间
// 减加速度计算:J = 4*delta_v/(decel_time_ms^2)
uint64_t jerk_numerator = 4ULL * delta_v * 1000ULL;
uint64_t jerk_denominator = (uint64_t)decel_time_ms * decel_time_ms;
uint32_t jerk = (uint32_t)(jerk_numerator / jerk_denominator);
// 最大减速度
uint32_t max_decel = (jerk * Tj) / 1000;
// 减减速过程的脉冲数:N1 = (1/6) * J * Tj^3
uint64_t Tj_cubed = (uint64_t)Tj * Tj * Tj;
uint64_t phase1_pulses_calc = (jerk * Tj_cubed) / (6ULL * 1000ULL * 1000ULL);
// 加减速过程的脉冲数:N2 = V0*Tj + (5/6)*J*Tj^3
uint64_t phase2_term1 = (uint64_t)vel_start_decel * Tj / 1000;
uint64_t phase2_term2 = (5ULL * jerk * Tj_cubed) / (6ULL * 1000ULL * 1000ULL);
uint64_t phase2_pulses_calc = phase2_term1 + phase2_term2;
// 存储减速段参数
route->scurve.decel_jerk = jerk;
route->scurve.decel_max = max_decel;
route->scurve.decel_jerk_time_ms = Tj;
route->scurve.decel_phase1_pulses = (uint32_t)phase1_pulses_calc;
route->scurve.decel_phase2_pulses = (uint32_t)phase2_pulses_calc;
}
else
{
// 无需减速,清零参数
route->scurve.decel_jerk = 0;
route->scurve.decel_max = 0;
route->scurve.decel_jerk_time_ms = 0;
route->scurve.decel_phase1_pulses = 0;
route->scurve.decel_phase2_pulses = 0;
}
/* 存储减速段参数 */
route->scurve.decel_jerk = jerk;
route->scurve.decel_max = max_decel;
route->scurve.decel_jerk_time_ms = jerk_time_ms;
route->scurve.decel_phase1_pulses = phase1_pulses;
route->scurve.decel_phase2_pulses = phase2_pulses;
}
else
{
/* 无减速段,清零参数 */
route->scurve.decel_jerk = 0;
route->scurve.decel_max = 0;
route->scurve.decel_jerk_time_ms = 0;
route->scurve.decel_phase1_pulses = 0;
route->scurve.decel_phase2_pulses = 0;
}
}



/**
* @brief 重置S曲线计算状态(用于段切换)
*/
void PLSR_Reset_SCurve_State(void) {
// 通过调用函数并传入无效参数来触发状态重置
// 实际使用中,在段切换时调用此函数
}

/* ==================== 第一阶段多项式求解(加速或减速开始阶段)==================== */
static uint32_t SCurve_SolvePhase1_Polynomial(uint32_t vel_start, uint32_t jerk,
uint64_t displacement, uint8_t is_deceleration)
{
if (jerk == 0) return vel_start;
/* 方程: s = v₀·t ± (1/6)·J·t³
对于加速: s = v₀·t + (1/6)·J·t³ (正号)
对于减速: s = v₀·t - (1/6)·J·t³ (负号)
*/
if (vel_start == 0)
{
/* 特殊情况:从零速开始 */
if (is_deceleration) return 0; /* 减速从0开始不合理 */
/* 纯立方方程: s = (1/6)·J·t³ => t = ∛(6s/J) */
uint64_t t_cubed = (6000ULL * displacement) / jerk; /* 乘1000是单位换算 */
uint32_t time_ms = cbrt_approx(t_cubed);
/* v = (1/2)·J·t² */
uint64_t velocity = ((uint64_t)jerk * time_ms * time_ms) / 2000;
return CLAMP_FREQUENCY(velocity);
// /**
// * @brief 快速立方根计算(用于脉冲数反算时间)
// * @param x 输入值
// * @return 立方根近似值
// */
// static uint32_t cbrt_approx(uint64_t x)
// {
// if (x == 0) return 0;
// // 使用位操作快速初始估算
// uint32_t guess;
// if (x >= 1000000000ULL) guess = 1000;
// else if (x >= 1000000ULL) guess = 100;
// else if (x >= 1000ULL) guess = 10;
// else guess = 1;
// // 牛顿法迭代:x_{n+1} = (2*x_n + a/x_n²) / 3
// for (int i = 0; i < 3; i++) {
// uint64_t guess_sq = (uint64_t)guess * guess;
// if (guess_sq == 0) break;
// guess = (uint32_t)((2ULL * guess + x / guess_sq) / 3);
// }
// return guess;
// }

static double cbrt_approx(double x) {
if (x == 0) return 0;
if (x < 0) return -cbrt_approx(-x);
double guess = x / 3.0;
for (int i = 0; i < 10; i++) {
guess = (2.0 * guess + x / (guess * guess)) / 3.0;
}
/* 使用多项式近似求解 */
/* 设 x = J·s/(v₀³), 则 t/τ ≈ 1 + x/6 - x²/36,其中 τ = s/v₀ */
uint64_t v0_sq = (uint64_t)vel_start * vel_start;
uint64_t v0_cu = v0_sq * vel_start;
/* 基础时间估计: τ = s/v₀ */
uint64_t tau_ms = displacement / vel_start;
/* 修正项计算: x = J·s/(v₀³) */
uint64_t x_numerator = (uint64_t)jerk * displacement;
uint64_t x = x_numerator / v0_cu;
/* 多项式修正: t ≈ τ·(1 + x/6 - x²/36) */
uint64_t correction = x / 6;
if (x < 36) { /* 防止溢出和负数 */
uint64_t x_sq = x * x;
if (correction > x_sq / 36) {
correction -= x_sq / 36;
return guess;
}

/**
* @brief 第一阶段:根据脉冲数计算时间(加加速段,牛顿迭代)
* 方程: (1/6)*J_real*t^3 - S*1000 = 0
* @param pulse_num 当前脉冲数
* @param jerk 加加速度 (Hz/ms²)
* @return 时间 (ms)
*/
static double SCurve_GetTimeFromPulses_Phase1(uint32_t pulse_num, uint32_t jerk) {
if (pulse_num == 0 || jerk == 0) return 0.0;

double S_cont = (double)pulse_num * 1000.0; // 脉冲转换为连续量
double J_real = (double)jerk / 1000.0; // Hz/ms²

// 初始猜测:用反函数近似值作为初始点
double t = cbrt_approx((6.0 * S_cont) / J_real);
if (t <= 0.0) t = 1.0; // 避免负数或零

// 牛顿迭代
for (int i = 0; i < 40; ++i) {
double t2 = t * t;
double t3 = t2 * t;
double F = (1.0 / 6.0) * J_real * t3 - S_cont;
double dF = 0.5 * J_real * t2;

if (fabs(dF) < 1e-12) break;

double t_new = t - F / dF;
if (t_new <= 0.0) {
t_new = t * 0.5;
}
if (fabs(t_new - t) < 1e-7) {
t = t_new;
break;
}
t = t_new;
}
uint64_t time_ms = tau_ms + (tau_ms * correction) / 1000;
if (time_ms == 0) time_ms = 1;
/* 计算速度: v = v₀ ± (1/2)·J·t² */
uint64_t time_sq = (time_ms * time_ms) / 1000; /* 防止溢出 */
uint64_t accel_term = ((uint64_t)jerk * time_sq) / 2;
uint64_t velocity;
if (is_deceleration) {
/* 减速: v = v₀ - (1/2)·J·t² */
velocity = ((uint64_t)vel_start * 1000 > accel_term) ?
((uint64_t)vel_start * 1000 - accel_term) / 1000 : 0;
} else {
/* 加速: v = v₀ + (1/2)·J·t² */
velocity = vel_start + accel_term / 1000;
}
return CLAMP_FREQUENCY(velocity);

if (t < 0.0) t = 0.0;
return t; // ms
}

/* ==================== 第二阶段多项式求解(jerk减小阶段)==================== */
static uint32_t SCurve_SolvePhase2_Polynomial(uint32_t vel_start, uint32_t jerk,
uint32_t jerk_time_ms, uint64_t displacement,
uint8_t is_deceleration)
{
if (jerk == 0 || jerk_time_ms == 0) return vel_start;
/* 第二阶段的起点速度计算 */
uint64_t T_sq = (uint64_t)jerk_time_ms * jerk_time_ms;
uint32_t vel_mid;
if (is_deceleration) {
/* 减速段:第二阶段起点是第一阶段结束点 */
vel_mid = ((uint64_t)vel_start * 1000 > (jerk * T_sq) / 2) ?
vel_start - (uint32_t)((jerk * T_sq) / 2000) : 0;

/* Phase2: pulses*1000 = Vmid*t + 0.5*Amax*t^2 - (1/6)*J_real*t^3
其中 Amax = J_real * Tj (Tj 单位 ms), J_real = jerk / 1000 */
static double SCurve_GetTimeFromPulses_Phase2(uint32_t pulse_num, uint32_t V0,
uint32_t jerk, uint32_t Tj) {
if (pulse_num == 0) return 0.0;

double J_real = (double)jerk / 1000.0; /* Hz / ms^2 */
double Tj_d = (double)Tj; /* ms */
double Amax = J_real * Tj_d; /* Hz / ms (注意单位:a in Hz per ms) */
double Vmid = (double)V0; /* V0 parameter here is vmid (caller should pass vmid) */

double S_cont = (double)pulse_num * 1000.0; /* 连续量 */

double t;
if (Vmid > 0.0)
{
t = S_cont / Vmid;
if (t <= 0.0) t = Tj_d / 2.0;
} else {
/* 加速段:第二阶段起点 */
vel_mid = vel_start + (uint32_t)((jerk * T_sq) / 2000);
t = Tj_d / 2.0;
}
/* 第二阶段方程求解 */
/* 加速第二阶段: s = v_mid·t - (1/6)·J·t³ (减jerk)
减速第二阶段: s = v_mid·t + (1/6)·J·t³ (减jerk,但整体仍是减速)*/
if (vel_mid == 0) {
/* 特殊情况处理 */
uint64_t t_cubed = (6000ULL * displacement) / jerk;
uint32_t time_ms = cbrt_approx(t_cubed);
uint64_t velocity;
if (is_deceleration) {
velocity = ((uint64_t)jerk * time_ms * time_ms) / 2000;
} else {
velocity = vel_mid > ((uint64_t)jerk * time_ms * time_ms) / 2000 ?
vel_mid - ((uint64_t)jerk * time_ms * time_ms) / 2000 : 0;

/* 牛顿迭代求解 F(t) = Vmid*t + 0.5*Amax*t^2 - (1/6)*J_real*t^3 - S_cont = 0 */
for (int i = 0; i < 40; ++i) {
double t2 = t * t;
double t3 = t2 * t;
double F = Vmid * t + 0.5 * Amax * t2 - (1.0/6.0) * J_real * t3 - S_cont;
double dF = Vmid + Amax * t - 0.5 * J_real * t2;

if (fabs(dF) < 1e-12) break;
double t_new = t - F / dF;
if (t_new <= 0.0) {
t_new = t * 0.5;
}
return CLAMP_FREQUENCY(velocity);
}
/* 多项式近似求解 */
uint64_t v_mid_sq = (uint64_t)vel_mid * vel_mid;
uint64_t v_mid_cu = v_mid_sq * vel_mid;
/* 基础时间: τ = s/v_mid */
uint64_t tau_ms = displacement / vel_mid;
/* 修正项: x = J·s/(v_mid³) */
uint64_t x = ((uint64_t)jerk * displacement) / v_mid_cu;
/* 第二阶段的修正(负jerk效应)*/
uint64_t correction = x / 6;
uint64_t time_ms = (tau_ms > correction) ? tau_ms - correction : tau_ms;
if (time_ms == 0) time_ms = 1;
/* 计算最终速度 */
uint64_t time_sq = (time_ms * time_ms) / 1000;
uint64_t jerk_term = ((uint64_t)jerk * time_sq) / 2000;
uint64_t velocity;
if (is_deceleration) {
/* 减速第二阶段: v = v_mid + (1/2)·J·t² (注意这里是加号,因为jerk方向改变)*/
velocity = vel_mid + jerk_term;
} else {
/* 加速第二阶段: v = v_mid - (1/2)·J·t² (减jerk阶段)*/
velocity = (vel_mid > jerk_term) ? vel_mid - jerk_term : 0;
if (fabs(t_new - t) < 1e-7) {
t = t_new;
break;
}
t = t_new;
}
return CLAMP_FREQUENCY(velocity);

if (t < 0.0) t = 0.0;
return t; /* ms */
}

/* ==================== 主要的多项式近似速度计算函数 ==================== */
uint32_t SCurve_CalculateVelocityByPosition_Polynomial(PLSR_RouteConfig_t* route,
uint8_t is_acceleration,
uint32_t executed_pulses)
{
/* 主函数:使用上述两个反函数,并在计算频率时用 J_real */
uint32_t PLSR_Calculate_SCurve_FreqByPulses_Exact(PLSR_RouteConfig_t* route, uint8_t is_accel) {
if (route == NULL) return 0;
uint32_t vel_start, jerk, jerk_time_ms;
uint32_t phase1_pulses, phase2_pulses;
if (is_acceleration) {
/* 加速段参数 */
vel_start = route->initial_freq;
jerk = route->scurve.accel_jerk;
jerk_time_ms = route->scurve.accel_jerk_time_ms;

int64_t current_tim2_count = __HAL_TIM_GET_COUNTER(&htim2);
uint32_t executed_pulses = current_tim2_count;

uint32_t V0, jerk, Tj, phase1_pulses, phase2_pulses;

if (is_accel) {
V0 = route->initial_freq;
jerk = route->scurve.accel_jerk; /* NOTE: assumed scaled = J_real * 1000 */
Tj = route->scurve.accel_jerk_time_ms;
phase1_pulses = route->scurve.accel_phase1_pulses;
phase2_pulses = route->scurve.accel_phase2_pulses;
} else {
/* 减速段参数 */
vel_start = route->initial_freq;
V0 = route->part2_target_freq;
jerk = route->scurve.decel_jerk;
jerk_time_ms = route->scurve.decel_jerk_time_ms;
Tj = route->scurve.decel_jerk_time_ms;
phase1_pulses = route->scurve.decel_phase1_pulses;
phase2_pulses = route->scurve.decel_phase2_pulses;
}

if (jerk == 0 || Tj == 0) return V0;

uint32_t calculated_freq = V0;

if (executed_pulses == 0) {
return V0;
}
else if (executed_pulses <= phase1_pulses)
{
/* Phase1 */
double t = SCurve_GetTimeFromPulses_Phase1(executed_pulses, jerk); /* ms */
double J_real = (double)jerk / 1000.0; /* Hz / ms^2 */
if (is_accel) {
double freq_double = (double)V0 + 0.5 * J_real * t * t; /* Hz */
calculated_freq = (uint32_t)(freq_double + 0.5);
} else {
double freq_double = (double)V0 - 0.5 * J_real * t * t; /* Hz */
if (freq_double < 1.0) freq_double = 1.0;
calculated_freq = (uint32_t)(freq_double + 0.5);
}
}
else if (executed_pulses <= (phase1_pulses + phase2_pulses))
{
/* Phase2 */
double Tj_d = (double)Tj;
double J_real = (double)jerk / 1000.0;
double vmid_double;
if (is_accel) {
vmid_double = (double)V0 + 0.5 * J_real * Tj_d * Tj_d;
} else {
vmid_double = (double)V0 - 0.5 * J_real * Tj_d * Tj_d;
if (vmid_double < 1.0) vmid_double = 1.0;
}

uint32_t phase2_pulse_num = executed_pulses - phase1_pulses;
double t_phase2 = SCurve_GetTimeFromPulses_Phase2(phase2_pulse_num, (uint32_t)vmid_double, jerk, Tj); /* ms */

double Amax = J_real * Tj_d; /* Hz / ms */

if (is_accel)
{
double freq_double = vmid_double + Amax * t_phase2 - 0.5 * J_real * t_phase2 * t_phase2;
calculated_freq = (uint32_t)(freq_double + 0.5);
}
else
{
double freq_double = vmid_double - Amax * t_phase2 + 0.5 * J_real * t_phase2 * t_phase2;
if (freq_double < 1.0) freq_double = 1.0;
calculated_freq = (uint32_t)(freq_double + 0.5);
}
} else {
calculated_freq = is_accel ? route->part1_target_freq : route->part3_target_freq;
}

if (calculated_freq > PLSR_PWM_FREQ_MAX) calculated_freq = PLSR_PWM_FREQ_MAX;
if (calculated_freq == 0) calculated_freq = 1;

return calculated_freq;
}


/**
* @brief 获取下一个脉冲的周期时间
* @param current_freq 当前计算得到的频率
* @return 下一个脉冲的周期时间(微秒)
*/
uint32_t PLSR_GetNextPulsePeriod_us(uint32_t current_freq) {
if (current_freq == 0) return 0xFFFFFFFF; // 无效频率
/* 参数有效性检查 */
if (jerk == 0 || jerk_time_ms == 0) return vel_start;
if ((phase1_pulses + phase2_pulses) == 0) return vel_start;
// 周期 = 1/频率,转换为微秒
uint32_t period_us = 1000000 / current_freq;
return period_us;
}

/**
* @brief 修改后的主控制函数,使用精确的反函数计算
*/
uint32_t PLSR_SCurve_Control(PLSR_RouteConfig_t* route) {
if (route == NULL) return 0;
/* 将脉冲转换为位移 (Hz·ms) */
uint64_t displacement = (uint64_t)executed_pulses * 1000ULL;
uint32_t current_freq = 0;
/* 判断当前处于哪个阶段并求解 */
if (executed_pulses <= phase1_pulses) {
/* 第一阶段:正jerk或负jerk开始 */
return SCurve_SolvePhase1_Polynomial(vel_start, jerk, displacement, !is_acceleration);
} else if (executed_pulses <= (phase1_pulses + phase2_pulses)) {
/* 第二阶段:jerk减小阶段 */
uint64_t phase2_displacement = (uint64_t)(executed_pulses - phase1_pulses) * 1000ULL;
return SCurve_SolvePhase2_Polynomial(vel_start, jerk, jerk_time_ms,
phase2_displacement, !is_acceleration);
} else {
/* 超出范围,返回目标速度 */
if (is_acceleration) {
return CLAMP_FREQUENCY(route->part1_target_freq);
} else {
return CLAMP_FREQUENCY(route->part3_target_freq);
}
switch(route->run_state) {
case PLSR_STATE_ACCEL:
// 加速阶段使用精确S曲线计算
current_freq = PLSR_Calculate_SCurve_FreqByPulses_Exact(route, 1);
break;
case PLSR_STATE_DECEL:
// 减速阶段使用精确S曲线计算
current_freq = PLSR_Calculate_SCurve_FreqByPulses_Exact(route, 0);
break;
case PLSR_STATE_CONST:
// 匀速阶段保持目标频率
current_freq = route->target_freq;
break;
default:
current_freq = route->current_freq;
break;
}
return current_freq;
}

+ 4
- 4
PLSR/PLSR/EWARM/settings/Project.wsdt
Diff onderdrukt omdat het te groot bestand
Bestand weergeven


+ 4
- 4
PLSR/PLSR/EWARM/settings/test.1.dbgdt Bestand weergeven

@@ -178,11 +178,11 @@
<RecentlyUsedMenus>1</RecentlyUsedMenus>
<MenuShadows>1</MenuShadows>
<ShowAllMenusAfterDelay>1</ShowAllMenusAfterDelay>
<CommandsUsage>CE0400001800138600002B00000010860000EC01000023920000030000000F810000010000005F860000030000000C8100000F000000568600003A01000000840000010000000C860000010000000E810000010000001A860000010000001F8100002200000009860000010000000B8100000200000000E1000001000000148600002C00000011860000C500000027810000060000004681000045000000028100000100000060860000010000005D8600000100000000B00000010000000886000003000000</CommandsUsage>
<CommandsUsage>CF0400001800138600002B00000010860000EC01000023920000030000005F860000030000000F810000010000000C8100000F000000568600003A01000000840000010000000C8600000100000009860000010000001F810000220000001A860000010000000E8100000100000000E10000010000000B81000002000000148600002C000000278100000600000011860000C5000000028100000100000046810000460000006086000001000000088600000300000000B00000010000005D86000001000000</CommandsUsage>
</MFCToolBarParameters>
<CommandManager>
<CommandsWithoutImages>1500FFFFFFFF838600005886000004DC00007486000000B0000001B0000002B0000003B0000004B0000005B0000006B0000007B0000008B0000009B000000AB000000BB000000C840000338400007884000011840000</CommandsWithoutImages>
<MenuUserImages>2800578600001C00000002860000130000001386000031000000048100004D000000108600002F000000768600003B000000D9860000100000002392000000000000848600003C0000000D860000190000000A8600002D0000009A8600001A000000018600001200000056860000350000000084000079000000D88600000F0000000C86000018000000098600002C0000001A860000340000005E860000370000008E8600003D000000698600003A00000003860000140000001486000032000000058100004E000000558600000800000000860000110000001186000030000000DA860000060000000E8600001B00000046810000640000000B8600002E0000006086000039000000088600002B000000C386000004000000A18600003E0000005D860000360000001686000033000000C08600000E0000003787000003000000</MenuUserImages>
<MenuUserImages>280013860000310000000286000013000000578600001C000000768600003B000000108600002F000000048100004D0000000D86000019000000848600003C0000002392000000000000D9860000100000000A8600002D000000568600003500000001860000120000009A8600001A00000000840000790000000C86000018000000D88600000F0000005E860000370000001A86000034000000098600002C0000008E8600003D00000014860000320000000386000014000000698600003A000000118600003000000000860000110000005586000008000000058100004E00000046810000640000000E8600001B000000DA8600000600000060860000390000000B8600002E0000005D86000036000000A18600003E000000C386000004000000088600002B0000003787000003000000C08600000E0000001686000033000000</MenuUserImages>
</CommandManager>
<Pane-59393>
<ID>0</ID>
@@ -1133,7 +1133,7 @@
</BasePane-34048>
<MFCToolBar-34049>
<Name>Debug</Name>
<Buttons>00200000010000000800FFFF01001100434D4643546F6F6C426172427574746F6E568600000000040035000000FFFEFF0000000000000000000000000001000000010000000180138600000000040031000000FFFEFF00000000000000000000000000010000000100000001805E8600000000040037000000FFFEFF0000000000000000000000000001000000010000000180608600000000040039000000FFFEFF00000000000000000000000000010000000100000001805D8600000000040036000000FFFEFF000000000000000000000000000100000001000000018010860000000004002F000000FFFEFF0000000000000000000000000001000000010000000180118600000000000030000000FFFEFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E148600000000040032000000FFFEFF205200650073006500740020007400680065002000640065006200750067006700650064002000700072006F006700720061006D000A00520065007300650074000000000000000000000000000100000001000000000000000000000001000000060009802087000000000000FFFFFFFFFFFEFF06530079007300740065006D000100000000000000000000000100000001000000000000000000000001000000000009802387000000000000FFFFFFFFFFFEFF0443006F00720065000100000000000000000000000100000001000000000000000000000001000000000009802487000000000000FFFFFFFFFFFEFF0853006F006600740077006100720065000100000000000000000000000100000001000000000000000000000001000000000009802187000000000000FFFFFFFFFFFEFF12480061007200640077006100720065002000720065007300650074002000700069006E000100000000000000000000000100000001000000000000000000000001000000000009800000000000000400FFFFFFFFFFFEFF000000000000000000000000000100000001000000000000000000000001000000000009801986000000000000FFFFFFFFFFFEFF000100000000000000000000000100000001000000000000000000000001000000000000000000FFFEFF0544006500620075006700C6000000</Buttons>
<Buttons>00200000010000000800FFFF01001100434D4643546F6F6C426172427574746F6E568600000000000035000000FFFEFF0000000000000000000000000001000000010000000180138600000000000031000000FFFEFF00000000000000000000000000010000000100000001805E8600000000000037000000FFFEFF0000000000000000000000000001000000010000000180608600000000000039000000FFFEFF00000000000000000000000000010000000100000001805D8600000000000036000000FFFEFF000000000000000000000000000100000001000000018010860000000000002F000000FFFEFF0000000000000000000000000001000000010000000180118600000000040030000000FFFEFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E148600000000000032000000FFFEFF205200650073006500740020007400680065002000640065006200750067006700650064002000700072006F006700720061006D000A00520065007300650074000000000000000000000000000100000001000000000000000000000001000000060009802087000000000000FFFFFFFFFFFEFF06530079007300740065006D000100000000000000000000000100000001000000000000000000000001000000000009802387000000000000FFFFFFFFFFFEFF0443006F00720065000100000000000000000000000100000001000000000000000000000001000000000009802487000000000000FFFFFFFFFFFEFF0853006F006600740077006100720065000100000000000000000000000100000001000000000000000000000001000000000009802187000000000000FFFFFFFFFFFEFF12480061007200640077006100720065002000720065007300650074002000700069006E000100000000000000000000000100000001000000000000000000000001000000000009800000000000000400FFFFFFFFFFFEFF000000000000000000000000000100000001000000000000000000000001000000000009801986000000000000FFFFFFFFFFFEFF000100000000000000000000000100000001000000000000000000000001000000000000000000FFFEFF0544006500620075006700C6000000</Buttons>
</MFCToolBar-34049>
<Pane-34049>
<ID>34049</ID>
@@ -1150,7 +1150,7 @@
</BasePane-34049>
<MFCToolBar-34050>
<Name>Main</Name>
<Buttons>00200000010000002100FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000066000000FFFEFF000000000000000000000000000100000001000000018001E100000000000067000000FFFEFF000000000000000000000000000100000001000000018003E100000000000069000000FFFEFF000000000000000000000000000100000001000000018000810000000000004A000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000006C000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004006E000000FFFEFF000000000000000000000000000100000001000000018022E10000000004006D000000FFFEFF000000000000000000000000000100000001000000018025E100000000000070000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040073000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040074000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0000000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000200FFFEFF04630061006C006C00FFFEFF1C50004C00530052005F005300650074007500700054006800720065006500500061007200740045007800650063007500740069006F006E000000000000000000018021810000000004005D000000FFFEFF000000000000000000000000000100000001000000018024E10000000000006F000000FFFEFF000000000000000000000000000100000001000000018028E100000000040071000000FFFEFF000000000000000000000000000100000001000000018029E100000000000072000000FFFEFF000000000000000000000000000100000001000000018002810000000000004C000000FFFEFF0000000000000000000000000001000000010000000180298100000000000061000000FFFEFF000000000000000000000000000100000001000000018027810000000000005F000000FFFEFF0000000000000000000000000001000000010000000180288100000000000060000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040059000000FFFEFF00000000000000000000000000010000000100000001801E810000000004005A000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B8100000000000050000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000051000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000065000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001801F810000000000005B000000FFFEFF000000000000000000000000000100000001000000018020810000000000005C000000FFFEFF0000000000000000000000000001000000010000000180468100000000020063000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00FF020000</Buttons>
<Buttons>00200000010000002100FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000066000000FFFEFF000000000000000000000000000100000001000000018001E100000000000067000000FFFEFF000000000000000000000000000100000001000000018003E100000000000069000000FFFEFF000000000000000000000000000100000001000000018000810000000000004A000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018007E10000000000006C000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000018023E10000000004006E000000FFFEFF000000000000000000000000000100000001000000018022E10000000004006D000000FFFEFF000000000000000000000000000100000001000000018025E100000000000070000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001802BE100000000040073000000FFFEFF00000000000000000000000000010000000100000001802CE100000000040074000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6E4281000000000000FFFFFFFFFFFEFF0001000000000000000100000000000000010000007800000002002050FFFFFFFFFFFEFF0096000000000000000200FFFEFF04630061006C006C00FFFEFF1C50004C00530052005F005300650074007500700054006800720065006500500061007200740045007800650063007500740069006F006E000000000000000000018021810000000004005D000000FFFEFF000000000000000000000000000100000001000000018024E10000000000006F000000FFFEFF000000000000000000000000000100000001000000018028E100000000040071000000FFFEFF000000000000000000000000000100000001000000018029E100000000000072000000FFFEFF000000000000000000000000000100000001000000018002810000000000004C000000FFFEFF0000000000000000000000000001000000010000000180298100000000000061000000FFFEFF000000000000000000000000000100000001000000018027810000000000005F000000FFFEFF0000000000000000000000000001000000010000000180288100000000000060000000FFFEFF00000000000000000000000000010000000100000001801D8100000000040059000000FFFEFF00000000000000000000000000010000000100000001801E810000000004005A000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001800B8100000000040050000000FFFEFF00000000000000000000000000010000000100000001800C8100000000000051000000FFFEFF00000000000000000000000000010000000100000001805F8600000000000065000000FFFEFF00000000000000000000000000010000000100000001800000000001000000FFFFFFFFFFFEFF00000000000000000000000000010000000100000001801F810000000000005B000000FFFEFF000000000000000000000000000100000001000000018020810000000000005C000000FFFEFF0000000000000000000000000001000000010000000180468100000000020063000000FFFEFF00000000000000000000000000010000000100000000000000FFFEFF044D00610069006E00FF020000</Buttons>
</MFCToolBar-34050>
<Pane-34050>
<ID>34050</ID>


+ 1
- 1
PLSR/PLSR/EWARM/settings/test.1.dnx Bestand weergeven

@@ -20,7 +20,7 @@
<stlinkResetStrategy>2</stlinkResetStrategy>
</StLinkDriver>
<DebugChecksum>
<Checksum>3379969080</Checksum>
<Checksum>1173251154</Checksum>
</DebugChecksum>
<Exceptions>
<StopOnUncaught>_ 0</StopOnUncaught>


+ 674
- 674
PLSR/PLSR/EWARM/test.1.dep
Diff onderdrukt omdat het te groot bestand
Bestand weergeven


+ 3
- 3
PLSR/PLSR/EWARM/test.1.ewp Bestand weergeven

@@ -287,7 +287,7 @@
<option>
<name>CCAllowList</name>
<version>1</version>
<state>11111110</state>
<state>00000000</state>
</option>
<option>
<name>CCDebugInfo</name>
@@ -374,7 +374,7 @@
</option>
<option>
<name>CCOptLevel</name>
<state>3</state>
<state>0</state>
</option>
<option>
<name>CCOptStrategy</name>
@@ -383,7 +383,7 @@
</option>
<option>
<name>CCOptLevelSlave</name>
<state>3</state>
<state>0</state>
</option>
<option>
<name>CompilerMisraRules98</name>


+ 2898
- 2221
PLSR/PLSR/EWARM/test.1/Exe/test.1.hex
Diff onderdrukt omdat het te groot bestand
Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Exe/test.1.out Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Exe/test.1.sim Bestand weergeven


+ 1146
- 974
PLSR/PLSR/EWARM/test.1/List/test.1.map
Diff onderdrukt omdat het te groot bestand
Bestand weergeven


+ 85
- 61
PLSR/PLSR/EWARM/test.1/Obj/.ninja_log Bestand weergeven

@@ -1,64 +1,88 @@
# ninja log v5
556 591 7784095308609417 stm32f4xx_ll_rng.pbi 5e12b9ea00d0b826
38 105 7784095303419003 stm32f4xx_ll_gpio.pbi df8b54563945d41d
583 646 7784095308935140 stm32f4xx_ll_tim.pbi b88554c6464192f5
1057 1444 7784095316950350 stm32f4xx_hal_flash_ex.pbi ac2d035774fe6a2e
1051 1448 7784095316960349 stm32f4xx_hal_pwr.pbi b347497fce55b6a8
141 175 7784095304450158 stm32f4xx_ll_pwr.pbi 952cb4e4f4edb65b
1578 1657 7784095318867766 test.1_part7.pbi 500429da32d98820
1524 2108 7784095323780438 test.1_part3.pbi 351715abf331fd8f
45 458 7784095307257064 stm32f4xx_hal_rcc_ex.pbi c1d751d24d77a2df
597 666 7784095309345140 app_hooks.pbi ffd399489d189d5a
1450 2093 7784095323353785 test.1_part4.pbi 56a4af6f8e33d2b8
42 433 7784095307007069 stm32f4xx_hal_pwr_ex.pbi b84426bf5a4ce0cf
600 685 7784095309395131 os_cpu_c.pbi eb75b848b406ea34
1145 1524 7784095317900360 stm32f4xx_hal_rcc.pbi 50976e6b18f3b8bc
103 599 7784095308679416 stm32f4xx_hal_tim.pbi 71840baae88d57c4
1054 1450 7784095316880351 stm32f4xx_hal_usart.pbi b368fafd8b8b8bb9
4151 5857 7784095360879135 test.1.pbw f11e09b552b4c82f
1179 1316 7784167807236548 stm32f4xx_ll_rng.pbi 5e12b9ea00d0b826
482 706 7784167800296124 stm32f4xx_ll_gpio.pbi df8b54563945d41d
851 882 7784167802887048 stm32f4xx_ll_tim.pbi b88554c6464192f5
947 1309 7784167807088128 stm32f4xx_hal_flash_ex.pbi ac2d035774fe6a2e
175 703 7784167800206123 stm32f4xx_hal_pwr.pbi b347497fce55b6a8
879 914 7784167803217106 stm32f4xx_ll_pwr.pbi 952cb4e4f4edb65b
1485 1528 7784167809346973 test.1_part7.pbi 500429da32d98820
979 1565 7784167809593242 test.1_part3.pbi 351715abf331fd8f
490 879 7784167802677036 stm32f4xx_hal_rcc_ex.pbi c1d751d24d77a2df
883 946 7784167803517033 app_hooks.pbi ffd399489d189d5a
1488 2181 7784167815668558 test.1_part4.pbi 56a4af6f8e33d2b8
488 851 7784167802567047 stm32f4xx_hal_pwr_ex.pbi b84426bf5a4ce0cf
914 982 7784167803867031 os_cpu_c.pbi eb75b848b406ea34
485 978 7784167803577050 stm32f4xx_hal_rcc.pbi 50976e6b18f3b8bc
704 1147 7784167805475020 stm32f4xx_hal_tim.pbi 71840baae88d57c4
983 1313 7784167807168158 stm32f4xx_hal_usart.pbi b368fafd8b8b8bb9
1314 3003 7784279571085987 test.1.pbw f11e09b552b4c82f
2014 2487 7762488664073707 uart.pbi 5ce52444157923c9
1282 1328 7784095315920352 stm32f4xx_ll_dac.pbi 7dfc4be0933cdfaf
495 556 7784095308065863 stm32f4xx_ll_crc.pbi dcf41d4b97590765
456 494 7784095307637066 stm32f4xx_ll_rcc.pbi fb9ace481decf8ab
2369 2693 7784095329629266 stm32f4xx_hal_msp.pbi 8144db72f01a260b
558 596 7784095308659413 stm32f4xx_ll_spi.pbi ce805017b70a4f43
1415 1578 7784095318480350 os_dbg.pbi f7287a072fe86a55
592 772 7784095310045139 stm32f4xx_ll_usart.pbi 783190689e783d9
2545 2884 7784095331409267 stm32f4xx_hal_crc.pbi 881b29e4c80746b3
33 103 7784095303369004 stm32f4xx_ll_dma.pbi f9e6142ede2883b4
36 108 7784095303399009 stm32f4xx_ll_exti.pbi 883a2fd463949e02
1386 1414 7784095316700350 test.1_part5.pbi 6e09abdb5099df5f
1328 1572 7784095318370346 ucos_ii.pbi 4e0ab25e0060431e
1657 2027 7784095322863806 stm32f4xx_hal.pbi a073c739b6b34173
108 140 7784095304100165 stm32f4xx_ll_i2c.pbi 7f1151d8874c40c9
459 879 7784095311115129 stm32f4xx_hal_sram.pbi 4652c5af4efd4e19
667 1054 7784095313095130 stm32f4xx_hal_flash.pbi eccf13860e1d0c6a
1445 1468 7784095317390342 test.1_part6.pbi 1f990020cfbdc2d2
880 1386 7784095316550352 stm32f4xx_hal_tim_ex.pbi 3c68a2e86514987f
646 1051 7784095312665144 stm32f4xx_hal_flash_ramfunc.pbi ae498685b336a49c
433 816 7784095310855143 stm32f4xx_hal_wwdg.pbi fca2b44f67349f99
106 558 7784095308245789 stm32f4xx_hal_uart.pbi e7ca7ebbb4330340
450 490 7784167798971037 stm32f4xx_ll_dac.pbi 7dfc4be0933cdfaf
447 487 7784167798941039 stm32f4xx_ll_crc.pbi dcf41d4b97590765
706 743 7784167801506126 stm32f4xx_ll_rcc.pbi fb9ace481decf8ab
2795 3229 7784167826369586 stm32f4xx_hal_msp.pbi 8144db72f01a260b
40 73 7784167794814239 stm32f4xx_ll_spi.pbi ce805017b70a4f43
1313 1484 7784167807878362 os_dbg.pbi f7287a072fe86a55
1186 1350 7784167807410203 stm32f4xx_ll_usart.pbi 783190689e783d9
1930 2414 7784167818085080 stm32f4xx_hal_crc.pbi 881b29e4c80746b3
1109 1145 7784167805495019 stm32f4xx_ll_dma.pbi f9e6142ede2883b4
1309 1481 7784167808498366 stm32f4xx_ll_exti.pbi 883a2fd463949e02
1481 1496 7784167809026978 test.1_part5.pbi 6e09abdb5099df5f
34 174 7784167795819338 ucos_ii.pbi 4e0ab25e0060431e
2191 2698 7784167820919536 stm32f4xx_hal.pbi a073c739b6b34173
1145 1178 7784167805842337 stm32f4xx_ll_i2c.pbi 7f1151d8874c40c9
849 1186 7784167805942199 stm32f4xx_hal_sram.pbi 4652c5af4efd4e19
37 446 7784167798521034 stm32f4xx_hal_flash.pbi eccf13860e1d0c6a
1350 1478 7784167807808372 test.1_part6.pbi 1f990020cfbdc2d2
42 484 7784167798901038 stm32f4xx_hal_tim_ex.pbi 3c68a2e86514987f
44 450 7784167798511157 stm32f4xx_hal_flash_ramfunc.pbi ae498685b336a49c
1148 1488 7784167808711460 stm32f4xx_hal_wwdg.pbi fca2b44f67349f99
743 1109 7784167805164109 stm32f4xx_hal_uart.pbi e7ca7ebbb4330340
35 454 7762489045860992 timer.pbi 8f8acc6a162957f
817 1281 7784095315510351 stm32f4xx_hal_i2c.pbi 74395538aa12fa10
2579 3023 7784095332931819 stm32f4xx_hal_dma.pbi 2d6aa8f3983bf80a
2028 2402 7784095326633620 stm32f4xx_hal_timebase_tim.pbi b6f5ce0feaca8054
685 1057 7784095313215134 stm32f4xx_hal_dma_ex.pbi 1960c5ab56ffede7
176 583 7784095308534324 stm32f4xx_hal_i2c_ex.pbi 7798e48f8e6ef374
39 455 7784095307177070 stm32f4xx_hal_exti.pbi 373789209d565f00
2108 2578 7784095328313628 main.pbi 9c0a6aa02351636a
2402 2827 7784095330459267 stm32f4xx_it.pbi d01766022cb163bc
2422 2883 7784095331169269 stm32f4xx_hal_cortex.pbi 2c6d2473a153fb5a
2828 3211 7784095334201534 system_stm32f4xx.pbi f50e519d7e78a5de
2094 2545 7784095328073625 gpio.pbi a088b5271f02118a
3777 4151 7784095344123703 test.1.pbd 363d5d355a216cdf
2693 3312 7784095335559038 test.1_part0.pbi 60db414ccd7a80f4
773 1145 7784095313986274 stm32f4xx_hal_gpio.pbi 53b438f48be9a8d0
3212 3777 7784095340331742 test.1_part1.pbi 132c9eecf11b0e50
3024 3555 7784095338269031 test.1_part2.pbi 9358ff0702a0a659
2062 2421 7784095326913633 dma.pbi 4f5ebe00ac67ed57
1468 2062 7784095323280687 tim.pbi f07c6d790a519d93
2537 2985 7784095332441816 usart.pbi 7c2d93866867ab60
1903 2369 7784095326383628 modbus_log.pbi 596603da5f343c45
1573 2030 7784095323003812 modbus_crc.pbi 9b76681ddf289794
1448 1903 7784095321727763 flash_save.pbi dc7405226be28cc6
2030 2536 7784095327803633 tools.pbi 50c1b905eccec5a9
38 460 7784167798631034 stm32f4xx_hal_i2c.pbi 74395538aa12fa10
2182 2695 7784167820789536 stm32f4xx_hal_dma.pbi 2d6aa8f3983bf80a
1316 1689 7784167810970779 stm32f4xx_hal_timebase_tim.pbi b6f5ce0feaca8054
2411 2797 7784167821919543 stm32f4xx_hal_dma_ex.pbi 1960c5ab56ffede7
461 848 7784167802356119 stm32f4xx_hal_i2c_ex.pbi 7798e48f8e6ef374
2414 2794 7784167821959537 stm32f4xx_hal_exti.pbi 373789209d565f00
40 614 7784278404872903 main.pbi 9c0a6aa02351636a
1478 1932 7784167813252468 stm32f4xx_it.pbi d01766022cb163bc
2179 2548 7784167819384369 stm32f4xx_hal_cortex.pbi 2c6d2473a153fb5a
1982 2411 7784167817604177 system_stm32f4xx.pbi f50e519d7e78a5de
37 583 7784278404462865 gpio.pbi a088b5271f02118a
965 1313 7784279554645077 test.1.pbd 363d5d355a216cdf
615 1215 7784278410929298 test.1_part0.pbi 60db414ccd7a80f4
73 481 7784167798891047 stm32f4xx_hal_gpio.pbi 53b438f48be9a8d0
413 965 7784279551162514 test.1_part1.pbi 132c9eecf11b0e50
2797 3379 7784167827809588 test.1_part2.pbi 9358ff0702a0a659
2549 3013 7784167824209538 dma.pbi 4f5ebe00ac67ed57
33 413 7784279545631682 tim.pbi f07c6d790a519d93
43 713 7784278405910659 usart.pbi 7c2d93866867ab60
45 615 7784278404722903 modbus_log.pbi 596603da5f343c45
1528 1982 7784167813442479 modbus_crc.pbi 9b76681ddf289794
1497 1929 7784167813162477 flash_save.pbi dc7405226be28cc6
38 425 7784279164337861 tools.pbi 50c1b905eccec5a9
38 456 7784279700485335 tim.pbi f07c6d790a519d93
457 1051 7784279706446586 test.1_part1.pbi 132c9eecf11b0e50
1051 1480 7784279710723042 test.1.pbd 363d5d355a216cdf
1481 3195 7784279727551414 test.1.pbw f11e09b552b4c82f
40 494 7784279796326999 tim.pbi f07c6d790a519d93
495 1103 7784279802455313 test.1_part1.pbi 132c9eecf11b0e50
1103 1509 7784279806571254 test.1.pbd 363d5d355a216cdf
1510 3258 7784279823678588 test.1.pbw f11e09b552b4c82f
35 526 7784286750342297 tools.pbi 50c1b905eccec5a9
526 1115 7784286755983960 test.1_part1.pbi 132c9eecf11b0e50
1115 1496 7784286759952451 test.1.pbd 363d5d355a216cdf
1496 3153 7784286776198971 test.1.pbw f11e09b552b4c82f
42 421 7784286865146048 tools.pbi 50c1b905eccec5a9
421 968 7784286870626236 test.1_part1.pbi 132c9eecf11b0e50
969 1324 7784286874186105 test.1.pbd 363d5d355a216cdf
1324 3024 7784286890790863 test.1.pbw f11e09b552b4c82f
38 524 7784287000838654 tools.pbi 50c1b905eccec5a9
525 1104 7784287006633794 test.1_part1.pbi 132c9eecf11b0e50
1104 1473 7784287010334258 test.1.pbd 363d5d355a216cdf
1474 3178 7784287026954716 test.1.pbw f11e09b552b4c82f
34 407 7784289088070313 tools.pbi 50c1b905eccec5a9
408 952 7784289093572070 test.1_part1.pbi 132c9eecf11b0e50
953 1302 7784289097071205 test.1.pbd 363d5d355a216cdf
1303 2947 7784289113149025 test.1.pbw f11e09b552b4c82f

BIN
PLSR/PLSR/EWARM/test.1/Obj/app_hooks.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/dma.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/flash_save.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/gpio.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/gpio.pbi Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/main.pbi Bestand weergeven


+ 62
- 55
PLSR/PLSR/EWARM/test.1/Obj/main.pbi.dep Bestand weergeven

@@ -1,57 +1,64 @@
main.pbi: \
e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM\..\Core\Inc\dma.h \
E:\Software\IAR\arm\inc\c\iar_intrinsics_common.h \
E:\Software\IAR\arm\inc\c\intrinsics.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\..\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 \
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/gpio.h \
E:\Software\IAR\arm\inc\c\intrinsics.h \
E:\Software\IAR\arm\inc\c\iar_intrinsics_common.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

BIN
PLSR/PLSR/EWARM/test.1/Obj/modbus_crc.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/modbus_log.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/modbus_log.pbi Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/os_cpu_a.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/os_dbg.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/startup_stm32f407xx.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_cortex.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_crc.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_dma.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_dma_ex.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_exti.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_flash.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_flash_ex.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_flash_ramfunc.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_gpio.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_i2c.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_i2c_ex.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_msp.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_pwr.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_pwr_ex.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_rcc.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_rcc_ex.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_sram.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_tim.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_tim_ex.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_timebase_tim.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_uart.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_usart.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_hal_wwdg.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_it.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_crc.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_dac.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_dma.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_exti.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_gpio.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_i2c.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_pwr.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_rcc.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_rng.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_spi.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_tim.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/stm32f4xx_ll_usart.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/system_stm32f4xx.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/test.1.pbd Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/test.1.pbd.browse Bestand weergeven


+ 18620
- 18496
PLSR/PLSR/EWARM/test.1/Obj/test.1.pbw
Diff onderdrukt omdat het te groot bestand
Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/test.1_part0.pbi Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/test.1_part1.pbi Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/tim.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/tim.pbi Bestand weergeven


+ 54
- 58
PLSR/PLSR/EWARM/test.1/Obj/tim.pbi.dep Bestand weergeven

@@ -1,59 +1,55 @@
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_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 \
e:\Users\Mortal\Desktop\Train_Camp_PLSR\PLSR\PLSR\EWARM/../Core/Inc/gpio.h \
tim.pbi: E:\Software\IAR\arm\inc\c\iar_intrinsics_common.h \
E:\Software\IAR\arm\inc\c\intrinsics.h \
E:\Software\IAR\arm\inc\c\iar_intrinsics_common.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\tim.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\..\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\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 \
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

BIN
PLSR/PLSR/EWARM/test.1/Obj/tools.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/tools.pbi Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/ucos_ii.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/usart.o Bestand weergeven


BIN
PLSR/PLSR/EWARM/test.1/Obj/usart.pbi Bestand weergeven


Laden…
Annuleren
Opslaan