时间管理

12
时时时时 os_time.c

description

时间管理. os_time.c. 时间管理的主要内容. 时钟节拍的产生 任务延迟与唤醒 维护系统当前时间. 时钟节拍的产生. 硬件必须支持定时中断 可编程的定时中断周期,从而产生操作系统需要的时钟节拍 ISR 中实现时间的维护以及抢占调度和任务延迟 其中抢占调度是在退出 ISR 时候调用 OSIntExit 实现的 其他工作是在 OSTimeTick 函数中实现 发生定时中断 保存现场调用 OSINTEnter 清中断标志调用 OSTimeTick 调用 OSINTExit 恢复现场返回. 任务延时. - PowerPoint PPT Presentation

Transcript of 时间管理

Page 1: 时间管理

时间管理

os_time.c

Page 2: 时间管理

Lzp<[email protected]

m>

时间管理的主要内容

时钟节拍的产生 任务延迟与唤醒 维护系统当前时间

Page 3: 时间管理

Lzp<[email protected]

m>

时钟节拍的产生

硬件必须支持定时中断 可编程的定时中断周期,从而产生操作系统需要的时钟

节拍 ISR中实现时间的维护以及抢占调度和任务延迟 其中抢占调度是在退出 ISR时候调用 OSIntExit实现的 其他工作是在 OSTimeTick函数中实现 发生定时中断保存现场调用 OSINTEnter 清中断

标志调用 OSTimeTick 调用 OSINTExit 恢复现场返回

Page 4: 时间管理

Lzp<[email protected]

m>

Page 5: 时间管理

Lzp<[email protected]

m>

任务延时

UCOS-II提供两个函数实现任务延时:OSTimeDly和 OSTimeDlyHMSM

OSTimeDly以 tick为单位进行延时OSTimeDlyHMSM以时分秒为单位进行延时

Page 6: 时间管理

Lzp<[email protected]

m>

Page 7: 时间管理

Lzp<[email protected]

m>

Page 8: 时间管理

Lzp<[email protected]

m>

恢复延时的任务

处于延时的任务可以有两种方式被唤醒:1. 延迟时间到,由 OSTimeTick 唤醒2. 延迟时间未到,但其他任务决定唤醒它,不

再继续延时,由 OSTimeDlyResume 实现

Page 9: 时间管理

Lzp<[email protected]

m>

Page 10: 时间管理

Lzp<[email protected]

m>

获取与设置系统时间

可以通过调用 OSTimeGet获取系统当前时间,即系统当前的 tick计数

可以通过调用 OSTimeSet设置系统的时间( tick数)

Page 11: 时间管理

Lzp<[email protected]

m>

获取时间

Page 12: 时间管理

Lzp<[email protected]

m>

设置时间