#include "dev_task.h"
#include <stdint.h>

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;
    }
}