Los bucles son estructuras de programación que permiten repetir un conjunto de instrucciones. Ya hemos visto dos, el bucle infinito, que permite repetir un conjunto de instrucciones indefinidamente y el bucle for que permite repetir un bloque de instrucciones un número de veces. Ahora vamos a ver bucles condicionales que se van a repetir dependiendo de que se cumpla o no una condición, por ejemplo del estado de las entradas.
El bucle while es un bucle que se repite mientras se cumpla una condición
El bucle tiene dos posibles formas de escribirse
do instrucciones loop while condición
do while condición instrucciones loop
En ambos casos la función similar; se repetirán las instrucciones entre do y loop mientras se cumpla la condición escrita después de while. La diferencia es que en la primera opción las instrucciones no se realizan ni una vez si al principio del bucle no se cumple la condición, mientras que en la segunda opción, las instrucciones entre do y loop se hacen al menos una vez, porque la condición se evalúa después.
Las instrucciones pueden no existir, de manera que en ese caso, el programa funciona como una espera que dura mientras se cumpla la condición. De todos modos suele ser buena idea en esos casos poner como instrucción una pequeña espera, como pause 100, para no atosigar al controlador.
do while pin6=0 high 0 loop low 0
Este programa encenderá el led 0 y lo mantendrá encendido hasta que pulsemos el pulsador 6. Entonces se apagará y terminará el programa.
es muy parecido al bucle while, pero en lugar de realizase mientras se cumpla la condición se realiza hasta que se cumpla
Ttiene dos posibles formas de escribirse
do instrucciones loop until condición
do until condición instrucciones loop
En ambos casos la función similar; se repetirán las instrucciones entre do y loop hasta que se cumpla la condición escrita después de until. La diferencia es que en la primera opción las instrucciones no se realizan ni una vez si al principio del bucle no se cumple la condición, mientras que en la segunda opción, las instrucciones entre do y loop se hacen al menos una vez, porque la condición se evalúa después.
Este programa va encendiendo las salidas de una en una (eso está escrito dentro del bucle) hasta que se pulsa la entrada 6, entonces sale del bucle y termina apagándolas todas
b0=0 do until pin6=1 high b0 b0=b0+1 wait 1 loop wait 1 low 0,1,2,3,4,5,6,7
Un bucle puede no tener ninguna instrucción entonces se comportará como una espera. Por ejemplo, en el siguiente ejemplo se encienden las salidas de la 0 a la 3, pero el bucle impide continuar hasta que se pulsa el pulsador 6
low 0,1,2,3,4,5,6,7 high 0 wait 1 high 1 wait 1 high 2 wait 1 high 3 do loop while pin6=0; el programa no avanzará hasta que se pulse el pulsador 6 high 4 wait 1 high 5 wait 1 high 6 wait 1 high 7
Escribe un programa como el del ejemplo. Cada vez se pulsa una vez el pulsador 6 se enciende una salida más.
Mejora el programa anterior. Cada vez se pulsa una vez el pulsador 6 se enciende una salida más. Si se pulsa la 7 se apagan todas. Si volvemos a pulsar 6, el programa se comporta otra vez como al principio.
Escribe un programa como el del ejemplo. Cada vez se pulsa una vez el pulsador 6 se enciende una salida más y cada vez que se pulsa la 7 se enciende una menos.
Escribe un programa como el del ejemplo. Es como una especie de llave digital. Para que se enciendan todas las salidas hay que hacer una secuencia de pulsaciones: pulsar una vez 6, pulsar una vez 7, pulsar dos veces 6, pulsar una vez 7, pulsar 3 veces 6, pulsar una vez 7.
Para que se pueda reiniciar, hay que pulsar simultáneamente 6 y 7