#include "dev_task.h" #include const uint16_t dev_task_cycle_tab[8] = { 5, // task0 周期5ms; 10, // task1 周期10ms; 50, // task2 周期50ms; 100, // task3 周期100ms; 200, // task4 周期200ms; 500, // task5 周期500ms; 1000, // task6 周期1000ms; 2000, // task7 周期2000ms; }; // 定义任务循环标志位 dev_task_flag_un dev_task_flag; void dev_task_clock(void) { static volatile uint32_t sys_tick_count = 0; uint8_t i = 0; sys_tick_count++; for (i = 0; i < TASK_MASK_QTY; i++) { if (sys_tick_count % dev_task_cycle_tab[i] == 0x00) { dev_task_flag.all |= 0x01 << i; } } if (sys_tick_count > 4000000000) { sys_tick_count = 0; } }