- 移除冗余的三值约束宏定义 `_constrain3` - 修改关机逻辑,引入 `thermal_uncontrol` 标志替代旧 shut_down 计数方式 - 调整恢复函数中错误标志位清零逻辑 - 将部分 uint8_t 类型成员变量改为 bool 类型以提高可读性 - 在类中添加电源电压成员变量并调整 PID 参数初始化 - 移除 PID 控制器中不必要的 CAN 测试代码 - 添加 thermal 控制相关文件引用及初始化 - 使用 switch 替代多重 if-else 提高控制模式处理效率 - 引入基于定时器的任务负载均衡调度机制 - 初始化热量控制器并在主循环中调用更新逻辑
34 lines
940 B
C++
34 lines
940 B
C++
#include "main.h"
|
|
#include "Can.h"
|
|
#include "DengFOC.h"
|
|
#include "Timer.h"
|
|
#include "adc.h"
|
|
#include "ang_sensor.h"
|
|
#include "thermal.h"
|
|
#include "core_cm4.h"
|
|
#include "initial.h"
|
|
#include "systick.h"
|
|
|
|
// 全局变量定义
|
|
CAN_transmiter CAN0_transmiter; // CAN初始化
|
|
FOC_Controlroller FOC; // FOC控制初始化
|
|
sampler sampler; // 采样器初始化
|
|
angle_sensor KTH7823; // 角度传感器初始化
|
|
ThermalController thermalController; // 热量控制器初始化
|
|
|
|
int main(void) {
|
|
systick_config(); // 系统时钟初始化
|
|
USART0_init(); // 调试串口初始化
|
|
User_timer_init(); // Timer初始化
|
|
driver_init(); // 电机驱动初始化
|
|
watchdog_init(5000); // 看门狗初始化
|
|
|
|
angsens_MG_test(); // 角度传感器磁感应强度测试
|
|
|
|
while (1) {
|
|
// delay_1ms(100);
|
|
// std::printf("1\n");
|
|
fwdgt_counter_reload(); // 看门狗复位
|
|
CAN0_transmiter.communication_check(); // CAN通信
|
|
}
|
|
} |