文章目录

  • 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) {xprintf("timer over!\n");
}/*** 任务的运行代码* @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, 0, 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. 周期性定时事件的处理

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

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

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

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

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

  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. at定时任务,一次性定时计划任务

    at 命令是一次性定时计划任务,at的守护进程atd会在后台开启运行,检查任务队列运行. 默认60S检查一次. at命令是一次性的计划任务,执行完就不再执行. 确认atd进程启动 ps -ef | g ...

  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. 用hmmlearn学习隐马尔科夫模型HMM
  2. Socket recv()之前进行select代码
  3. 初步了解qemu虚拟机
  4. virtualBox中的ubuntu共享文件夹
  5. 2013计算机大纲,2013计算机应用基础考试大纲
  6. 利用 CocoaLumberjack 搭建自己的 Log 系统
  7. DPDK l3fwd
  8. 排序算法之——冒泡排序分析
  9. linux设置程序开机自启动
  10. 大神级ppt作品欣赏_超写实绘画,逼真到让你怀疑自己的双眼,各路超写实大神作品欣赏...
  11. 软件安全备考--PE文件
  12. 算法简介:不撞南墙不回头----深度优先搜索算法(DFS)
  13. Excel改变了你的基因名,30% 相关Nature文章受影响,NCBI也受波及
  14. 功能强大特别的5款浏览器,简直好用极了
  15. Android 4.0 源代码结构
  16. 数据可视化_EChat
  17. Jupyter notebook更改字体
  18. 基于meta-path的异质网络Embedding-HIN2vec
  19. centos7.x系统磁盘lvm扩容
  20. 采用计算机联锁系统的目的,计算机联锁系统特点及优势

热门文章

  1. conda init 关闭和重启shell_Linux的/etc/init.d详解
  2. 文化氛围对新人培养新人的影响
  3. 【MATLAB教程案例2】GPS信号捕获算法的案例分析
  4. C++用顶层函数重载操作符
  5. 嵌入式arm linux 文件系统登入密码的修改笔记
  6. thrift多平台安装
  7. php实现 求int型数据在内存中存储时1的个数(函数都可自己实现)
  8. 重裝系統,磁盤消失解決方法
  9. https加密解密过程详解
  10. git cherry-pick简介