#include <nitro/os.h>
void OS_WaitInterrupt( BOOL clear, OSIrqMask irqFlags );
clear | Indicates whether or not check flags should be cleared. |
irqFlags | The mask value of the interrupt generation for which the function is waiting. You can specify more than one by using a logical sum. |
None.
Waits for the generation of a specified IRQ interrupt source In irqFlags
you can specify multiple interrupt sources by logical OR-ing the mask values. Generation of any of the interrupts included here will cause a return from the function.
A check flag can be set after an IRQ interrupt is generated it indicate that interrupt. To set this flag, the user must explicitly call OS_SetIrqCheckFlag
from the interrupt handler.
If you set clear
to TRUE
, before waiting, this resets interrupt flags that are specified by irqFlags
from amongst the interrupt check flags. If there is no reset, and a relevant check flag has been preset, return from the function will be immediate.
The difference between OS_WaitInterrupt()
and OS_WaitIrq()
is this: While OS_WaitInterrupt()
is waiting for an interrupt, it it uses OS_Halt()
to stop. While OS_WaitIrq()
is waiting for an interrupt, it switches processing to another thread. It restarts operation after an interrupt is generated. If no threads are used, both functions behave the same.
OS_SetIrqCheckFlag
, OS_WaitIrq
03/08/2005 Standardized the Japanese term for "interrupt"
05/24/2004 Initial version