feat(FOC): 添加电源电压更新功能
在 FOC 控制器中新增 `update_power` 方法,用于实时获取母线电压, 提升控制系统对电源状态的感知能力。 feat(CAN): 优化 CAN 配置与通信处理 将 CAN 相关宏定义改为 constexpr 常量,并引入角度转换因子。 修正接收数据解析方式,增强通信稳定性与精度。 feat(angle_sensor): 实现角度累积与绕回处理 重写角度传感器驱动,支持角度连续测量与自动绕回处理。 新增 `update`、`getAngle` 和 `reset` 接口,提高角度读取准确性。 feat(main): 增加角度传感器磁感应强度测试 在主函数初始化阶段调用磁感应强度检测函数,辅助判断传感器工作状态。
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user