#include <nitro/os.h>
void OS_SetAlarm(
OSAlarm* alarm,
OSTick tick,
OSAlarmHandler handler,
void* arg );
alarm |
Pointer to an alarm structure that is initialized for this alarm. |
tick |
Tick count until the alarm goes off (the handler is called). |
handler |
Alarm handler. |
arg |
Argument when the handler is called. |
None.
Sets up a one-time alarm.
A handler
is called after the tick count that is specified by tick
. The V-Count alarm handler handler
is an OSVAlarmHandler
function defined by the following.
typedef void (*OSAlarmHandler)( void* );
When the handler
is called, it takes arg
as an argument. The handler
argument is passed from the OS timer interrupt handler. Therefore, interrupts are prohibited.
One tick count unit is 1/64 of the hardware system clock.
If alarm
is specified for the pointer to the OSAlarm
structure in which the alarm has been set, it stops with OS_Panic
.
In the following example, by setting an alarm, the handler
function is called 0.5 seconds later, and "handler called. arg=0x12345678
" is displayed.
Example:
#define COUNT OS_MilliSecondsToTicks( 500 ) #define ARG 0x12345678 OSAlarm alarm; main() { : OS_InitTick(); OS_InitAlarm(); : OS_CreateAlarm( &alarm ); OS_SetAlarm( &alarm, COUNT, handler, (void*)ARG ); : } void handler( void* arg ) { OS_Printf( "handler called. arg=0x%x\n", arg ); }
OS_InitAlarm
OS_CancelAlarm
OS_SetPeriodicAlarm
OS_SetAlarmTag
OS_*SecondsToTicks
2005/03/08 Standardized the use of the term "interrupt" in Japanese.
2004/12/22 Added a statement about the alarm handler's being called from the timer interrupt handler.
2004/08/30 Added a statement about not being able to use the set alarm structure.
2004/02/25 Changed systemClock
to tick
.
2004/02/04 Initial version.
CONFIDENTIAL