feat(motor_state): 支持多通道电机状态管理并添加推送周期动态调节功能

- 实现 node×channel 双键槽位管理,支持同一节点号在不同CAN通道独立缓存
- 扩展电机状态表容量从9个槽位到27个槽位(9节点×3通道)
- 添加SPI命令子命令0xFE用于动态设置0xC5推送周期(50-5000ms)
- 增加运行时可调推送周期功能,默认250ms,支持50ms-5s范围调节
- 更新CAN通道配置,启用CH1和CH2通道支持
- 版本号更新至1.5.4
This commit is contained in:
cbb
2026-07-30 02:11:49 +08:00
parent 46ef19d882
commit e06f5eb9a9
8 changed files with 107 additions and 34 deletions
+2 -1
View File
@@ -33,6 +33,7 @@ void TaskManager::init()
g_scheduler.div_can_tx = 0U;
g_scheduler.div_heartbeat = 0U;
g_scheduler.div_motor_state = 0U;
g_scheduler.motor_state_period_ticks = CONFIG_TASK_PERIOD_MOTOR_STATE_TICKS;
g_scheduler.div_diag_print = 0U;
}
@@ -108,7 +109,7 @@ void TaskManager::tick100us()
/* 多电机状态 0xC5 推送:250ms 独立节拍。
* 不挂在 1Hz heartbeat 上,避免连带加速 OTA Boot 轮询/CAN快照/ADC推送/checkOffline。 */
if(++g_scheduler.div_motor_state >= CONFIG_TASK_PERIOD_MOTOR_STATE_TICKS) {
if(++g_scheduler.div_motor_state >= g_scheduler.motor_state_period_ticks) {
g_scheduler.div_motor_state = 0U;
set(1UL << TASK_MOTOR_STATE_PUSH);
}