Figura 37. Organigrama del Programa Base.
Bucle Secuenciador
En el programa bucle regulador
secuencia está basado en la interrupción en tiempo real interna (RTI). Esta RTI se pone para generar una
interrupción a la CPU cada 32.8 milisegundos. El organigrama de la
interrupción RTI. Esta actividad de la interrupción puede ser considerada como si estuviera teniendo lugar
asíncronamente, con respecto al programa principal. El bit más significativo de la variable TIC se usa como un
'flag' para decir al programa principal cuando este tiempo se ha de incrementar TIC y ejecutar un paso a través
del Bucle Base.
La variable de la RAM RTIFs se usa para contar tres interrupciones de tiempo real antes de establecer
el MSB de TIC. El programa principal estará observando TIC para ver cuando el MSB se pone a 1. Cada 32.8
ms el 'flag' de RTIF se pondrá a 1 y se activará una petición de interrupción del temporizador. Uno de los
deberes de una rutina de servicio de interrupción es poner a 0 el 'flag' que causó la interrupción antes de volver
de la interrupción. Si RTIF no se pone a 0 antes del retorno, se generará inmediatamente una nueva petición de
interrupción, en lugar de esperar el disparo cada 32.8 ms.
Bucle del Reloj del Sistema
La variable TIC es el reloj más básico para el controlador de secuencia. TIC cuenta de 0 a 10. Cuando
TIC se incrementa de 9 a 10, el programa reconoce esto y poniendo TIC a 0. Excepto dentro del propio
controlador de secuencia, TIC aparece para contar de 0 a 9. TIC es igual a 0 en cada décimo del inicio de
secuencia.
La primera tarea de la subrutina del bucle principal se llama TIME. Esta rutina mantiene un reloj más
lento llamado TOC. TOC se incrementa cada vez que se ejecuta el bucle regulador y TIC se pone a 0 (cada
décimo paso a través del Bucle Base). TOC se pone como un contador software que cuenta de 0 a 59. Las rutinas
Figura 38. Organigrama de la Rutina de Servicio RTI.
Listado 4. Estructura del Programa Base
83
, el controlador de
Figura 38
muestra lo que pasa en cada