/* * 模块名称:ADC Sampling Task * 模块功能:TPAFE5160 8 通道同步采样,数据缓存与通知 * 适用平台:STM32F407ZGTx + TPAFE5160 * 作者:王建锋 * 创建日期:2026-07-19 * 修改记录: * v1.0 2026-07-19 王建锋 创建初始版本 * v1.1 2026-10-10 王建锋 新增 ADC_WAKE_FLAG 与 * adc_tick_irq_notify()——消费节拍由 osDelayUntil(1ms) * 轮询改为 TIM3 ISR 事件驱动唤醒 */ #ifndef ADC_TASK_H #define ADC_TASK_H #ifdef __cplusplus extern "C" { #endif int adc_task_init(void); void adc_task_func(void *arg); /* 事件驱动消费的唤醒标志。 * TIM3 1 kHz 更新中断触发 CONVST 后,用本标志唤醒 adcTask 消费一拍。 * 线程标志在此是**命令位**(等待即消费),不是状态位 → 用 osFlagsWaitAny, * 不加 osFlagsNoClear(AGENTS「就绪屏障位必须 osFlagsNoClear」只约束状态位) */ #define ADC_WAKE_FLAG 0x0001U /* ISR 入口:由 Src/main.c 的 HAL_TIM_PeriodElapsedCallback(TIM3 分支)调用。 * 内部自带"消费者就绪"门与句柄判空 → 调度器启动前调用也安全(理由见 .c 注释)。 * 收在 adc_task.c 而非 main.c 内联:main.c 不碰任何内核句柄,与 task_wd_tick_probe() 同构 */ void adc_tick_irq_notify(void); #ifdef __cplusplus } #endif #endif /* ADC_TASK_H */