feat(FOC): 添加电源电压更新功能

在 FOC 控制器中新增 `update_power` 方法,用于实时获取母线电压,
提升控制系统对电源状态的感知能力。

feat(CAN): 优化 CAN 配置与通信处理
将 CAN 相关宏定义改为 constexpr 常量,并引入角度转换因子。
修正接收数据解析方式,增强通信稳定性与精度。

feat(angle_sensor): 实现角度累积与绕回处理
重写角度传感器驱动,支持角度连续测量与自动绕回处理。
新增 `update`、`getAngle` 和 `reset` 接口,提高角度读取准确性。

feat(main): 增加角度传感器磁感应强度测试
在主函数初始化阶段调用磁感应强度检测函数,辅助判断传感器工作状态。
This commit is contained in:
cbb
2025-11-02 01:54:01 +08:00
parent 0c5ab9c1d8
commit 974b8e6675
9 changed files with 79 additions and 66 deletions
+6 -5
View File
@@ -3,6 +3,7 @@
#include "DengFOC.h"
#include "Timer.h"
#include "adc.h"
#include "ang_sensor.h"
#include "gd32c10x.h"
#include "gd32c10x_gpio.h"
#include "gd32c10x_misc.h"
@@ -33,6 +34,7 @@ static volatile std::u64 system_runtime_us = 0;
extern FOC_Controlroller FOC;
// 声明外部采样器对象
extern sampler sampler;
extern angle_sensor KTH7823;
/**
* @brief 设置引脚中断优先级
@@ -163,11 +165,10 @@ void TIMER2_IRQHandler(void) {
total_us100_counter++;
system_runtime_us += 100;
// 在定时器中断中执行FOC控制,确保控制频率稳定 (最高频操作放在最前)
FOC.velocity_open_loop(FOC.target_velocity);
// 每100us执行一次的操作
sampler.update_current();
sampler.update_current(); // 更新电流采样值
KTH7823.update(); // 更新角度传感器值
FOC.velocity_open_loop(FOC.target_velocity); // 速度开环控制
if (total_us100_counter >= 10) {
// 每1ms执行的代码
@@ -244,8 +245,8 @@ void TIMER3_IRQHandler(void) {
count_10++;
if (count_10 >= 10) {
count_10 = 0;
// 1s测试代码
FOC.update_power();
}
}
}