Paso 1: Paso 1: Cómo utilizar interrupción de timer en pcDuino
Cuando el pcDuino ejecuta Ubuntu, que es una versión de Linux, Linux
proporciona un mecanismo temporizador, que evocan un determinado proceso en cierto intervalo y utilizar el proceso para hacer algunos trabajos predefinidos.
A continuación se muestra la estructura que es utilizada por el temporizador:
struct itimerval {}
struct timeval it_interval; / * siguiente valor * /
struct timeval it_value; / * valor actual * /
}
struct timeval {}
tv_sec largo; / * segundos * /
tv_usec largo; / * microsegundos * /
}
it_value: establece la primera vez que el temporizador de alarmas e interrupciones.
it_interval: establecer el valor de reset del temporizador. Si es cero, el temporizador será válido después de la primera alarma. Si no cero, el temporizador se cargarán con este valor, cuando después de la primera alarma.
tv_sec: definir el parámetro de tiempo del temporizador en la unidad de segundos.
tv_usec: definir el parámetro de tiempo del temporizador en unidades de microsegundos.
La función ajustar temporizador:
setitimer int (int, const itimerval struct * new_value, struct itimerval * old_value)
donde el 'que' variable toma el valor siguiente:
ITIMER_REAL: Use el tiempo real del sistema para calcular, enviará una señal SIGALRM el nombre. ITIMER_VIRTUAL: Use el tiempo de permanencia en la condición de usuario para calcular, se le enviará una señal de llamada SIGVTALRM. ITIMER_PROF: Use el tiempo total empleado en la condición de usuario y kernel estado para calcular, enviará una señal denominada SIGPROF.
También tenemos que configurar la correspondiente función de la señal de interrupción (en cabecera signal.h de archivo) de procesamiento:
typedef void (* sighandler_t)(int);
señal de sighandler_t (int signum, controlador sighandler_t);
Signum: configurar la señal de interrupción que debe ser procesado. Puede ser la señal de interrupción: SIGALRM, SIGVTALRM y SIGPROF.
controlador: función que se utiliza para procesar la señal de interrupción.