首页 > 其他分享 >时间片轮询法

时间片轮询法

时间:2022-11-17 09:35:08浏览次数:40  
标签:TASK 轮询 uint8 Timer TaskComps 任务 时间 void

一、前言

为了方便理解和查阅本人所需的知识,在此做笔记。知识点来源书本与网络,如有侵权,联系删除。

二、框架

1.任务结构

typedef struct _TASK_COMPONENTS
{
   uint8 Run;                 // 程序运行标记:0-不运行,1运行
   uint8 Timer;              // 计时器
   uint8 *ItvTime;              // 任务运行间隔时间
   void (*TaskHook)(void);    // 要运行的任务函数
} TASK_COMPONENTS;       // 任务定义

2.任务运行标志出来,此函数就相当于中断服务函数

void TaskRemarks(void)
{
    uint8 i;

    for (i = 0; i < TASK_NUM; i++)       // 逐个任务时间处理
    {
         if (TaskComps[i].Timer)          // 时间不为0
        {
            TaskComps[i].Timer--;         // 减去一个节拍
            if (TaskComps[i].Timer == 0)       // 时间减完了
            {
                 TaskComps[i].Timer = *TaskComps[i].ItvTime;       // 恢复计时器值,从新下一次
                 TaskComps[i].Run = 1;           // 任务可以运行
            }
        }
   }
}

3.任务处理

void TaskProcess(void)
{
    uint8 i;

    for (i = 0; i < TASK_NUM; i++)         // 逐个任务时间处理
    {
         if (TaskComps[i].Run)           // 时间不为0
        {
            if(NULL != TaskComps[i].TaskHook)
            {
             TaskComps[i].TaskHook();         // 运行任务
            }
             TaskComps[i].Run = 0;          // 标志清0
        }
    }  
}

标签:TASK,轮询,uint8,Timer,TaskComps,任务,时间,void
From: https://www.cnblogs.com/DW-Web/p/16898333.html

相关文章

  • python日期和时间
    一、日期和时间时间戳#从1970年到现在经过的秒数#作用:用于时间间隔的计算importtimeprint(time.time())#获得float型1668571939.8918502时间格式化符号......
  • 长轮询
    长轮询即前端每隔一段时间就发送一次请求。当服务端接收请求的时候,我们先查询是否有前端想要的数据,如果有则返回,如果没有,则先将请求hang住一段时间,比如30s,如果这30s内。服......
  • 微信消息显示时间研究 | 深先院羽毛球预约脚本的启示
    背景深先院的体育设施一直十分紧缺,羽毛球场经过假期改造后,终于重见天日。球场数量惊人地增长了50%,由原来2个场地增加到了如今3个场地!o.o去年以前预约羽毛球需要在微信小......
  • nodejs dayjs 时间戳转化时间格式
    Unix时间戳day.js可以轻松转换秒级和毫秒级时间戳:dayjs().unix();//秒dayjs().valueOf();//毫秒letss=dayjs.unix('1668580898').format('YYYY-MM-DDHH:mm:ss'......
  • 【769】Python时间戳转换为北京时间
    参考:Python时间戳转为北京时间参考:Python将时间戳转换为指定格式日期......
  • python爬取公众号文章发布时间
    使用xpath取出来的是空,爬取到本地的html,时间的标签如下,内容也是是空的<emid="publish_time"class="rich_media_metarich_media_meta_text"></em>经过查找发现网页使用的......
  • 用LASSO,adaptive LASSO预测通货膨胀时间序列|附代码数据
    原文链接:http://tecdat.cn/?p=22273如果你了解数据科学领域,你可能听说过LASSO。LASSO是一个对目标函数中的参数大小进行惩罚的模型,试图将不相关的变量从模型中排除动机......
  • Js时间戳转时间格式
    废话不多说,直接上代码Js时间戳转(yyyy:MM:ddhh:mm:ss)格式//标准时间转换成年月日时分秒(补0)functiongetTime(timestamp){vardate=newDate(timestamp);//......
  • 如何批量给Sqlserver数据库表中的 如:创建时间设置为自动填充约束
    批量给数据库表中的如:创建时间设置为自动填充约束1:小知识补充//-----------sqlserver1.获取所有数据库名:SELECTNameFROMMaster..SysDatabasesORDERBYName......
  • 并发-显式锁[老的,有时间我重新整理一下]
    并发-显式锁[老的,有时间我重新整理一下]文章是直接从我本地word笔记粘贴过来的,排版啥的可能有点乱,凑合看吧,有时间我会慢慢整理(一)什么是显示锁Lock子类就是显示锁.首先sy......