/** * @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 */