欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

《基于嵌入式实时操作系统的编程技术》笔记清单:第九章时间管理

程序员文章站 2022-06-17 14:25:55
《基于嵌入式实时操作系统的编程技术》笔记清单:第三章任务划分.《基于嵌入式实时操作系统的编程技术》笔记清单:第四章任务设计.《基于嵌入式实时操作系统的编程技术》笔记清单:第五章中断服务程序设计.《基于嵌入式实时操作系统的编程技术》笔记清单:第六章行为同步.《基于嵌入式实时操作系统的编程技术》笔记清单:第七章资源同步.前言实时操作系统提供了若干时间管理服务函数,可以满足任务在运行过程中对时间管理的需要。在使用时间管理服务函数时,必须十分清楚一个事实:时间管理服务函数以系统节拍为处理单位,实际效果时...

《基于嵌入式实时操作系统的编程技术》笔记清单:第三章任务划分.
《基于嵌入式实时操作系统的编程技术》笔记清单:第四章任务设计.
《基于嵌入式实时操作系统的编程技术》笔记清单:第五章中断服务程序设计.
《基于嵌入式实时操作系统的编程技术》笔记清单:第六章行为同步.
《基于嵌入式实时操作系统的编程技术》笔记清单:第七章资源同步.
《基于嵌入式实时操作系统的编程技术》笔记清单:第八章数据通信.
《基于嵌入式实时操作系统的编程技术》笔记清单:第九章时间管理.
《基于嵌入式实时操作系统的编程技术》笔记清单:第十章采集任务设计.

前言

实时操作系统提供了若干时间管理服务函数,可以满足任务在运行过程中对时间管理的需要。在使用时间管理服务函数时,必须十分清楚一个事实:时间管理服务函数以系统节拍为处理单位,实际效果时间与希望时间是有误差的,最坏的情况下误差接近一个系统节拍。因此,时间管理服务函数只能在对时间精度不高的场合,或者时间间隔较长的场合。

本章笔记清单

1. 时间管理服务函数特点

1)以系统节拍为处理单位;
2)最坏情况下,误差接近一个系统节拍;
3)应用于对时间精度不高,或时间间隔较长的场合。

2. 时间服务函数用于控制任务的执行周期

void Mytask(void *pdata)
{
	while(1)
	{
		任务实体代码;
		调用系统延时函数;
	}
}

3.时间服务函数用于控制任务的运行节奏

void Mytask(void *pdata)
{
	while(1)
	{
		获取时间函数;
		第一部分操作代码;
		延时;
		第二部分操作代码;
		延时;
		第三部分操作代码;
		....
	}
}

4. 状态查询

	while(1){
		...
		for( ; ; ){
			关中断;
			temp = count;
			开中断;
			if(temp 不小于10) break;
			OSTimeDly(1);
		}
		...
	}

1)在查询过程中插入延时函数,不断地将PCU交出来,供其它任务使用。
2)等待按键释放,也是查询操作。
3)只需要某种状态的出现不能主动触发信号,就采用查询方法获取信息。
4)相邻两次查询之间的间隔可根据查询精度决定,查询对象变化快,两次查询的时间间隔就越短。
5)如果某种状态必然在短时间(微妙级)发生,不必插入延时。(如:等待A/D转换)

5. 终止周期性任务

1)用超时参数终止周期性任务;

void Mytask(void *pdata)
{
	...
	while(1)
	{
		任务实体;
		OSSemPend(Key_semp, 20, &err); //等待20周期为20个时钟节拍(即任务周期)
		if (err == OS_NO_ERR) break; //如果成功获得键盘信号量,则退出循环
	}
	OSTaskDel(OS_PRIO_SLEF); //删除自身任务
}
//成功获取键盘信号量,则退出循环。

2)场合:生成一个采样收集任务。采样收集任务,循环查询按键是否释放信号量,直到按键释放了信号,任务才算完成,最后删除任务采集任务。
3)调用“有超时限制得等待信号量(或消息)”的系统函数可以实现双重目的,在没有按时获得信号量(或消息)时,起到控制运行周期的作用(与OSTimeDly()效果相同);当成功获得信号量(或消息)时,可以及时退出循环,终止周期性任务。



6.题外话

短视频、短微博,信息碎片化,把人们的思维模式、思维形式和关注点都切断在几十秒甚至十几秒当中,长期如此“训练”,思维模式、视野会越来越局限在片段,缺乏处理复杂事物长链逻辑线的能力。容易纠缠、执着在细节里,丧失对事物全局的把握、整体的观照。往往“只见树木,不见森林”。

——转自水木然学社公众号文章《短视频流行背后:人类正在批量生产精神病!》

本文地址:https://blog.csdn.net/weixin_38956024/article/details/107294411