Todo lo que tenga que ver con el tiempo se encuentra definido en
<asm/rt_time.h>
. Las definiciones de interés son:
typedef long long RTIME;
El tiempo se mide en este tipo de unidades (realmente, golpes de reloj). Por eso mismo se define aquí la constante ya conocida:
long long RT_TICKS_PER_SEC;
Como comentamos, define el número de unidades de tiempo (golpes de reloj) por segundo.
Por ejemplo, para obtener un período de 50 microsegundos, el valor
aquí sería: (RT_TICKS_PER_SEC * 50)/1000000
. Hay que tener en
cuenta el valor de la constante para ver el período mínimo.
Es posible obtener el instante absoluto desde que se arrancó la máquina, en unidades de tiempo RTIME, con la función:
extern RTIME rt_get_time(void);
Las demás funciones ofrecidas son de utilidad para programar planificadores de tiempo real, y están en continuo cambio de una versión a otra de RT-Linux. Son las siguientes:
extern void rt_free_timer(void);
Esta función libera un controlador de tiempo instalado con la función
anterior.
extern void rt_set_timer(RTIME instante);
Esta función solicita que en el instante dado, se dispare la
función instalada como controladora.
extern void rt_no_timer(void);
Anula lo anterior. Ambas funciones deben ser llamadas desde dentro del
controlador.