Files
Motor_v2/Robot_V2/main.cpp
T
cbb db2d08032c feat(FOC): 优化FOC控制逻辑与热管理机制
- 移除冗余的三值约束宏定义 `_constrain3`
- 修改关机逻辑,引入 `thermal_uncontrol` 标志替代旧 shut_down 计数方式
- 调整恢复函数中错误标志位清零逻辑
- 将部分 uint8_t 类型成员变量改为 bool 类型以提高可读性
- 在类中添加电源电压成员变量并调整 PID 参数初始化
- 移除 PID 控制器中不必要的 CAN 测试代码
- 添加 thermal 控制相关文件引用及初始化
- 使用 switch 替代多重 if-else 提高控制模式处理效率
- 引入基于定时器的任务负载均衡调度机制
- 初始化热量控制器并在主循环中调用更新逻辑
2025-11-12 00:46:26 +08:00

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通信
}
}