Files
DCU_APP/GD32E508_DCU_APP/comm/ethercat_sync.h
T
cbb 1612e326ee feat(cproject): 重构项目文件结构并添加EtherCAT通信支持
- 将设备相关文件重新组织为device/spi和comm分组
- 添加EtherCAT从站通信模块(esc_exmc_bus、esc_lan9252、ethercat_slave等)
- 添加EXMC外设组件支持
- 统一文件命名规范为小写

refactor(canfd): 优化CANFD模块中断安全性和配置方式

- 替换自定义临界区函数为RT_CRITICAL_SAVE/RESTORE宏
- 使用配置常量CONFIG_IRQ_PREEMPT_CAN替代硬编码值
- 简化邮箱满时的处理逻辑,移除不必要的SysTick等待
- 移除废弃的中断保存头文件引用

refactor(timer): 更新定时器配置以使用配置常量

- 修复头文件包含路径大小写问题
- 使用CONFIG_NVIC_PRIORITY_GROUP配置项替代硬编码值
2026-06-26 00:57:59 +08:00

27 lines
959 B
C++

/**
* @file ethercat_sync.h
* @brief EtherCAT SYNC0 周期同步接口(EXTI 独立向量 / TIMER0 降级)。
* @note 默认由 LAN9252 SYNC0 引脚(PB0/EXTI0)硬件触发周期中断,
* preempt=0 独占向量保证抖动 <1us;CONFIG_ETHERCAT_SYNC_MODE=1 时用 TIMER0 降级。
* ESC IRQ(PB1/EXTI1,preempt=1)与 SYNC1(PB2/EXTI2,preempt=1)独立向量。
*/
#ifndef COMM_ETHERCAT_SYNC_H
#define COMM_ETHERCAT_SYNC_H
class EthercatSync {
public:
/** @brief 初始化 SYNC0/IRQ/SYNC1 EXTI 引脚与 NVIC(或降级模式 TIMER0)。 */
static void init();
/** @brief SYNC0 EXTI 中断处理(EXTI0)。 */
static void onSync0Exti();
/** @brief ESC IRQ EXTI 中断处理(EXTI1)。 */
static void onEscIrqExti();
/** @brief SYNC1 EXTI 中断处理(EXTI2,备用)。 */
static void onSync1Exti();
/** @brief TIMER0 降级模式中断处理。 */
static void onTimerIrq();
};
#endif /* COMM_ETHERCAT_SYNC_H */