找回密码
 立即注册
查看: 110|回复: 1

继续打卡,定时器周期性调度任务

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:17
  • 最近打卡:2025-01-24 08:30:07
已绑定手机

15

主题

4

回帖

131

积分

注册会员

积分
131
发表于 2025-1-2 15:35:19 | 显示全部楼层 |阅读模式

#include "task.h"
#include "io.h"
static TASK_COMPONENTS Task_Comps[]=
{
//状态  计数  周期  函数
       
{0, 300,   300,   LED0_Blink},      /* task 1 Period: 300ms */
{0, 600,   600,   LED1_Blink},      /* task 1 Period: 600ms */
{0, 900,   900,   LED2_Blink},      /* task 1 Period: 600ms */  
{0, 10,    10,    KEY_Task},      /* task 1 Period: 600ms */         
};

u8 Tasks_Max = sizeof(Task_Comps)/sizeof(Task_Comps[0]);

//========================================================================
// 函数: Task_Handler_Callback
// 描述: 任务标记回调函数.
// 参数: None.
// 返回: None.
// 版本: V1.0, 2012-10-22
//========================================================================
void Task_Marks_Handler_Callback(void)
{
    u8 i;
    for(i=0; i<Tasks_Max; i++)
    {
        if(Task_Comps.TIMCount)      /* If the time is not 0 */
        {
            Task_Comps.TIMCount--;   /* Time counter decrement */
            if(Task_Comps.TIMCount == 0) /* If time arrives */
            {
                /*Resume the timer value and try again */
                Task_Comps.TIMCount = Task_Comps.TRITime;  
                Task_Comps.Run = 1;      /* The task can be run */
            }
        }
    }
}

//========================================================================
// 函数: Task_Pro_Handler_Callback
// 描述: 任务处理回调函数.
// 参数: None.
// 返回: None.
// 版本: V1.0, 2012-10-22
//========================================================================
void Task_Pro_Handler_Callback(void)
{
    u8 i;
    for(i=0; i<Tasks_Max; i++)
    {
        if(Task_Comps.Run) /* If task can be run */
        {
            Task_Comps.Run = 0;      /* Flag clear 0 */
            Task_Comps.TaskHook();   /* Run task */
        }
    }
}

太实用了!! 截图202501021532171196.jpg 截图202501021531518319.jpg 截图202501021530474045.jpg

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:355
  • 最近打卡:2025-05-06 00:38:18
已绑定手机

130

主题

1543

回帖

1971

积分

金牌会员

积分
1971
发表于 2025-1-2 21:44:16 | 显示全部楼层
是的,这个定时器周期性调度任务,是我接触单片机来,我个人觉得最实用,最好的东西了.
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-6 22:15 , Processed in 0.112602 second(s), 56 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表