RTA_OS基础功能讲解 2.9-警报器
文章目录
- RTA_OS基础功能讲解 2.9-警报器
-
- 一、警报器简介
- 二、警报器配置
-
- 2.1 激活一个任务
- 2.2 设置一个事件
- 2.3 执行回调函数
- 2.4 递增一个(软件)计数器
- 三、警报器设置
-
- 3.1 绝对警报
-
- 3.1.1 单次触发
- 3.1.2 周期触发
- 3.1.3 在过去设置警报
- 3.1.4 将绝对周期警报与计数器循环同步
- 3.2 相对警报
-
- 3.2.1 单次触发
- 3.2.2 周期触发
- 四、自启动警报器
- 五、取消警报器
- 六、确定警报发生的时间
- 七、非周期性警报
- 八、总结
一、警报器简介
使用 ISRs 可以构建以不同速度激活任务的系统。然而,对于复杂的系统来说,这样做可能会变得低效和不切实际。警报器提供了一种更方便、更可移植的系统调度方式。
警报机制由两部分组成:
- 计数器;
- 一个或多个与计数器相连的警报器。
警报器要指定在达到特定计数器值时要执行的操作。系统中的每个计数器都可以附加任意数量的警报器。当计数器的值等于附加到该计数器上的警报值时,就表示警报已过期。过期时,RTA-OS 将执行与警报相关的操作。该操作可以是激活任务、执行警报回调例程、设置事件或对软件计数器计数。
警报过期值可以定义为相对于实际计数器值或定义为绝对值。如果将警报过期值定义为相对于实际计数器的值,则称为相对警报。如果定义为绝对值,则称为绝对警报。
警报可配置为一次过期,一次过期的警报称为单次警报。也可以指定周期触发报警过期,这种警报称为循环警报。
二、警报器配置
警报器配置主要包括以下三部分:
- 命名:系统中的每个警报器都需要分配一个唯一的名称。与其他操作系统对象一样,这是运行时在代码中引用警报器时使用的名称。
- 计数器关联:警报器在配置时与计数器静态绑定。警报器的任何设置都以相关计数器的刻度为单位。
- 指定警报器的行为。
创建的每个警报器最多可与4个行为相关联&#