CMSIS-RTOS2
Version 2.2.0
Real-Time Operating System: API and RTX Reference Implementation
|
Wait for a certain period of time. More...
Functions | |
osStatus_t | osDelay (uint32_t ticks) |
Wait for Timeout (Time Delay). More... | |
osStatus_t | osDelayUntil (uint32_t ticks) |
Wait until specified time. More... | |
The generic wait functions provide means for a time delay.
osStatus_t osDelay | ( | uint32_t | ticks | ) |
[in] | ticks | time ticks value |
The function osDelay waits for a time period specified in kernel ticks. For a value of 1 the system waits until the next timer tick occurs. The actual time delay may be up to one timer tick less than specified, i.e. calling osDelay(1)
right before the next system tick occurs the thread is rescheduled immediately.
The delayed thread is put into the BLOCKED state and a context switch occurs immediately. The thread is automatically put back to the READY state after the given amount of ticks has elapsed. If the thread will have the highest priority in READY state it will be scheduled immediately.
Possible osStatus_t return values:
Code Example
osStatus_t osDelayUntil | ( | uint32_t | ticks | ) |
[in] | ticks | absolute time in ticks |
The function osDelayUntil waits until an absolute time (specified in kernel ticks) is reached.
The corner case when the kernel tick counter overflows is handled by osDelayUntil. Thus it is absolutely legal to provide a value which is lower than the current tick value, i.e. returned by osKernelGetTickCount. Typically as a user you do not have to take care about the overflow. The only limitation you have to have in mind is that the maximum delay is limited to (231)-1 ticks.
The delayed thread is put into the BLOCKED state and a context switch occurs immediately. The thread is automatically put back to the READY state when the given time is reached. If the thread will have the highest priority in READY state it will be scheduled immediately.
Possible osStatus_t return values:
Code Example