周期性定时事件的处理
文章目录
- 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));
}
参考资料:
- 手把手教你学用嵌入式操作系统
周期性定时事件的处理相关推荐
- Linux网络编程 | 定时事件 :Linux常见定时方法、定时器链表、空闲断开
文章目录 Linux定时方法 定时器链表 空闲断开 Linux定时方法 Linux中为我们提供了三种定时方法,分别是Socket超时选项,SIGALRM信号,I/O复用超时参数.下面一一对其进行介绍. ...
- 一次性定时事件的处理
文章目录 1 一次性定时事件的处理 1.1 定时要求 1.2 一次性触发软定时器 1 一次性定时事件的处理 1.1 定时要求 1.2 一次性触发软定时器 代码如下: /*** @brief tOS应用 ...
- mysql事件计划自动_逐步讲解MySQL中定时事件计划的创建
一.使用过程1.查看当前是否已开启事件计划(调度器)有3种方法: SHOW VARIABLES LIKE 'event_scheduler'; SELECT @@event_scheduler; SH ...
- Nginx的定时事件的实现(timer)
在前面的文章里面就说到了在事件循环中除了要处理所有的从epoll中获取的事件之外,还要处理一些timer事件,这篇文章就讲讲Nginx的timer是如何实现的. 在讲Nginx的实现之前,我们可以先回 ...
- bpmnjs flowable 添加定时事件timeDate,timeDuration,timeCycle
在芋道源码 / ruoyi-vue-pro的项目基础上进行定时事件的属性添加,该项目的工作流已经满足项目的基本需求,但是定时器组件缺少日期时间.持续时间和时间周期属性.本文主要就是讲讲怎么添加这些属性 ...
- bpmnjs activiti 添加定时事件timeDate,timeDuration,timeCycle
项目场景: 项目中用到bpmnjs来化流程图. 问题描述 项目中用到的框架使用bpmnjs封装了部分功能,添加边界事件部分功能缺失,需要自己根据bpmnjs来添加边界事件.需要在如下节点下面添加子节点 ...
- 周期性定时备份及邮件通知管理员
周期性定时备份: 每天晚上00点整在Web服务器A上打包备份网站程序目录并通过rsync命令推送到服务器B上备份保留. 具体要求如下: 1.Web服务器A和备份服务器B的备份目录必须都为backup ...
- activiti 定时事件
一,需要配置yml activiti activiti:#启用作业执行器async-executor-activate: true#启用异步执行器job-executor-activate: true ...
- python timer 死掉_Python定时事件 Timer sched
我们经常需要定时的执行某一个任务,在C/C++ 等语言中我们可以使用定时器,但是在Python中,标准库给我们提供了两种方式Timer和Sched. 先说sched模块,准确的说,它是一个调度(延时处 ...
最新文章
- 通过data:image/png;base64把图片直接写在src里
- 最常见企业管理SAAS软件有哪些?要解决哪些问题?
- 基于 MTCNN/TensorFlow 实现人脸检测
- matlab mlpkginstall,Matlab选择mingw编译器
- j90度度复数运算_看得懂的复数
- pyQt4 for mac OS 10.8
- java中的single_解析java泛型(一)
- 【聚类】- 聚类实现的数据结构抽象
- CUDA中二级指针表示二级数组
- 数据结构-------赫夫曼树
- 《妈妈是孩子最好的老师》读后感
- 嵌入式软件c语言笔试题
- 飞行控制PID算法——无人机飞控
- 微信强制性诱导分享php,微信公众号运营者注意了,下面这些诱导分享到朋友圈都是不可以的...
- 2021-2027全球与中国双联式过滤器外壳市场现状及未来发展趋势
- 记一次虚拟机无妨访问网络的问题-Failed to start LSB:Bring up/down networking
- 抖音矩阵系统,抖音矩阵系统源码,抖音SEO源码独立部署。
- Resources Root目录和Sources Root目录的区别
- TabLayout+ViewPager2联动
- 3GPP TS 23502-h20 中英文对照 | 4.4.1.3 N4 Session Modification procedure
热门文章
- 计算机软件集成项目工程师上海,2021年上海系统集成项目管理工程师报名时间和报名入口...
- 一起学nRF51xx 17 - lpcomp
- Android 解锁屏启动过程
- Arduino终于支持代码补全了!小白们终于可以愉快的写代码了!Arduino IDE 2.0beta功能简介...
- 那些年我们薅(撸)过的电子羊毛(设备)
- 【移动通信】天线原理
- 业内首创普惠保险,看国泰产险如何借助数据进行智能化的升级和战略转型
- 设置 JAVA_HOME
- 在iis中让asp.net的错误显示在远程访问电脑中
- android 打包出现错误Error: ResourceName