Figura 54. Diagrama de Flujo para el Bucle del Programa Principal
Las Figuras 55, 56 y 57 son diagramas de flujo para las tres rutinas que manejan las acciones de los tres
pulsadores de entrada. Cada una de estas rutinas empiezan con la ejecución de una rutina contra rebotes del
pulsador de 50 ms. Como se ha descrito en el capítulo de Programación , este retardo se necesita porque el salto
mecánico producido por el cierre de un pulsador es visto por el microcontrolador como múltiples cierres del
pulsador, durante los primeros milisegundos
después de apretar el pulsador. Esta pequeña
sección de código guarda el valor DebounceDly
en la variable RTIDlyCnt y entonces el valor de
espera es decrementado hasta ponerse a cero por
la rutina de servicio de interrupción. Cuando
alcanza el valor cero, el pulsador se verifica otra
vez para asegurar de nuevo el cierre del pulsador.
El valor usado para el retardo constante
(DebounceT), producirá un retardo mínimo,
aproximadamente de 50 milisegundos.
El diagrama de flujo de la
describe
la
rutina
de
responsable de manejar las acciones de la acción
alternativa del pulsador que pone el motor en
marcha y paro. Después del retardo contra los
rebotes del pulsador, esta rutina espera hasta que
el pulsador on/off se deje de pulsar, antes de que
realice el resto de su tarea y vuelva al bucle
principal. Por otra parte, el bucle principal
detectará otro cierre del pulsador en cuanto el
programa de MotorOnOff termine y vuelva al
bucle del programa principal.
Las rutinas descritas por los diagramas de flujo de la
manera. Primero, cada uno de estas rutinas prueba si el motor está en marcha. Si el motor está parado, la rutina
vuelve al bucle del programa principal. Entonces cada rutina hace el bucle continuamente tantas veces como es
asociado al pulsador que continua pulsado. Cada vez a través del bucle, las variables MotorPWM y
DesiredPWM son incrementadas o decrementadas para aumentar o disminuir el ciclo de trabajo de salida PWM.
Para impedir que la velocidad del motor aumente o disminuya demasiado rápida, cuando se aprieta un pulsador,
se inserta un retardo de 25 ms aproximadamente cada vez a través del bucle. Este retraso de 25 ms permite
ajustar el motor por su rango completo de velocidad, en 6 segundos aproximadamente.
Figura 55
Motor
On/Off.
Es
Figura 55. Organigrama de la Rutina de control de Motor 'on/off'
Figura 56 y 57
trabajan esencialmente de la misma
107