文章目录

  • 1 周期性定时事件的处理
    • 1.1 定时要求
    • 1.2 周期性触发软定时器

1 周期性定时事件的处理

1.1 定时要求

1.2 周期性触发软定时器

代码如下:

/*** @brief tOS应用示例* @details* @author 01课堂 李述铜 http://01ketang.cc* @date 2017-06-01* @version 1.0* @copyright 版权所有,禁止用于商业用途*/
#include "tinyOS.h"
#include "app.h"
#include "hal.h"static tTask task1;                     // 任务1结构
static tTask task2;                     // 任务2结构
static tTask task3;                     // 任务3结构
static tTask task4;                     // 任务4结构static tTaskStack task1Env[TASK1_ENV_SIZE];     // 任务1的堆栈空间
static tTaskStack task2Env[TASK2_ENV_SIZE];     // 任务2的堆栈空间
static tTaskStack task3Env[TASK3_ENV_SIZE];     // 任务3的堆栈空间
static tTaskStack task4Env[TASK4_ENV_SIZE];     // 任务4的堆栈空间int task1Flag;           // 用于指示任务运行状态的标志变量
int task2Flag;           // 用于指示任务运行状态的标志变量
int task3Flag;           // 用于指示任务运行状态的标志变量
int task4Flag;           // 用于指示任务运行状态的标志变量tTimer timer;void doSomething (void * param) {static enum {STATE1, STATE2} state = STATE1;switch (state) {case STATE1:xprintf("timer over!\n STATE1");state = STATE2;break;case STATE2:xprintf("timer over!\n STATE2");state = STATE1;break;}}/*** 任务的运行代码* @param param 任务初始运行参数*/
void task1Entry (void *param) {for (;;) {task1Flag = 1;tTaskDelay(1);task1Flag = 0;tTaskDelay(1);}
}/*** 任务的运行代码* @param param 任务初始运行参数*/
void task2Entry (void *param) {for (;;) {task2Flag = 1;tTaskDelay(1);task2Flag = 0;tTaskDelay(1);}
}/*** 任务的运行代码* @param param 任务初始运行参数*/
void task3Entry (void *param) {for (;;) {task3Flag = 1;tTaskDelay(1);task3Flag = 0;tTaskDelay(1);}
}/*** 任务的运行代码* @param param 任务初始运行参数*/
void task4Entry (void *param) {for (;;) {task4Flag = 1;tTaskDelay(1);task4Flag = 0;tTaskDelay(1);}
}/*** App的初始化*/
void tInitApp (void) {halInit();tTimerInit(&timer, 10, 10, doSomething, (void *)0, TIMER_CONFIG_TYPE_SOFT);tTimerStart(&timer);tTaskInit(&task1, task1Entry, (void *) 0x0, TASK1_PRIO, task1Env, sizeof(task1Env));tTaskInit(&task2, task2Entry, (void *) 0x0, TASK2_PRIO, task2Env, sizeof(task2Env));tTaskInit(&task3, task3Entry, (void *) 0x0, TASK3_PRIO, task3Env, sizeof(task3Env));tTaskInit(&task4, task4Entry, (void *) 0x0, TASK4_PRIO, task4Env, sizeof(task4Env));
}

参考资料:

  1. 手把手教你学用嵌入式操作系统

周期性定时事件的处理相关推荐

  1. Linux网络编程 | 定时事件 :Linux常见定时方法、定时器链表、空闲断开

    文章目录 Linux定时方法 定时器链表 空闲断开 Linux定时方法 Linux中为我们提供了三种定时方法,分别是Socket超时选项,SIGALRM信号,I/O复用超时参数.下面一一对其进行介绍. ...

  2. 一次性定时事件的处理

    文章目录 1 一次性定时事件的处理 1.1 定时要求 1.2 一次性触发软定时器 1 一次性定时事件的处理 1.1 定时要求 1.2 一次性触发软定时器 代码如下: /*** @brief tOS应用 ...

  3. mysql事件计划自动_逐步讲解MySQL中定时事件计划的创建

    一.使用过程1.查看当前是否已开启事件计划(调度器)有3种方法: SHOW VARIABLES LIKE 'event_scheduler'; SELECT @@event_scheduler; SH ...

  4. Nginx的定时事件的实现(timer)

    在前面的文章里面就说到了在事件循环中除了要处理所有的从epoll中获取的事件之外,还要处理一些timer事件,这篇文章就讲讲Nginx的timer是如何实现的. 在讲Nginx的实现之前,我们可以先回 ...

  5. bpmnjs flowable 添加定时事件timeDate,timeDuration,timeCycle

    在芋道源码 / ruoyi-vue-pro的项目基础上进行定时事件的属性添加,该项目的工作流已经满足项目的基本需求,但是定时器组件缺少日期时间.持续时间和时间周期属性.本文主要就是讲讲怎么添加这些属性 ...

  6. bpmnjs activiti 添加定时事件timeDate,timeDuration,timeCycle

    项目场景: 项目中用到bpmnjs来化流程图. 问题描述 项目中用到的框架使用bpmnjs封装了部分功能,添加边界事件部分功能缺失,需要自己根据bpmnjs来添加边界事件.需要在如下节点下面添加子节点 ...

  7. 周期性定时备份及邮件通知管理员

    周期性定时备份: 每天晚上00点整在Web服务器A上打包备份网站程序目录并通过rsync命令推送到服务器B上备份保留. 具体要求如下: 1.Web服务器A和备份服务器B的备份目录必须都为backup ...

  8. activiti 定时事件

    一,需要配置yml activiti activiti:#启用作业执行器async-executor-activate: true#启用异步执行器job-executor-activate: true ...

  9. python timer 死掉_Python定时事件 Timer sched

    我们经常需要定时的执行某一个任务,在C/C++ 等语言中我们可以使用定时器,但是在Python中,标准库给我们提供了两种方式Timer和Sched. 先说sched模块,准确的说,它是一个调度(延时处 ...

最新文章

  1. 通过data:image/png;base64把图片直接写在src里
  2. 最常见企业管理SAAS软件有哪些?要解决哪些问题?
  3. 基于 MTCNN/TensorFlow 实现人脸检测
  4. matlab mlpkginstall,Matlab选择mingw编译器
  5. j90度度复数运算_看得懂的复数
  6. pyQt4 for mac OS 10.8
  7. java中的single_解析java泛型(一)
  8. 【聚类】- 聚类实现的数据结构抽象
  9. CUDA中二级指针表示二级数组
  10. 数据结构-------赫夫曼树
  11. 《妈妈是孩子最好的老师》读后感
  12. 嵌入式软件c语言笔试题
  13. 飞行控制PID算法——无人机飞控
  14. 微信强制性诱导分享php,微信公众号运营者注意了,下面这些诱导分享到朋友圈都是不可以的...
  15. 2021-2027全球与中国双联式过滤器外壳市场现状及未来发展趋势
  16. 记一次虚拟机无妨访问网络的问题-Failed to start LSB:Bring up/down networking
  17. 抖音矩阵系统,抖音矩阵系统源码,抖音SEO源码独立部署。
  18. Resources Root目录和Sources Root目录的区别
  19. TabLayout+ViewPager2联动
  20. 3GPP TS 23502-h20 中英文对照 | 4.4.1.3 N4 Session Modification procedure

热门文章

  1. 计算机软件集成项目工程师上海,2021年上海系统集成项目管理工程师报名时间和报名入口...
  2. 一起学nRF51xx 17 -  lpcomp
  3. Android 解锁屏启动过程
  4. Arduino终于支持代码补全了!小白们终于可以愉快的写代码了!Arduino IDE 2.0beta功能简介...
  5. 那些年我们薅(撸)过的电子羊毛(设备)
  6. 【移动通信】天线原理
  7. 业内首创普惠保险,看国泰产险如何借助数据进行智能化的升级和战略转型
  8. 设置 JAVA_HOME
  9. 在iis中让asp.net的错误显示在远程访问电脑中
  10. android 打包出现错误Error: ResourceName