Proyectos electrónicos: cómo utilizar los bucles en código PBASIC
El PBASIC bucle FOR hará que el BASIC Stamp en su proyecto de electrónica ejecutar un bucle un número determinado de veces. También es una gran herramienta de programación para realizar una acción en múltiples pines de E / S. Por lo tanto, una PARA bucle es la forma ideal para poner en práctica un programa de LED Flasher.
La estructura básica de una PARA bucle se ve así:
PARA mostrador = puesta en valor A extremo valorDeclaraciones ...SIGUIENTE
He aquí un ejemplo que parpadea el LED en el pin 0 diez veces:
BYTEFOR X var x = 1 A 10HIGH 0PAUSE 500LOW 0PAUSE 500NEXT
En este ejemplo, el bucle se ejecuta diez veces. El valor de la variable X se incrementa en 1 cada vez que a través del bucle.
En el ejemplo anterior, el programa no utilizó realmente la variable contador. Eso es común en PARA loops- veces el único propósito de la variable de contador es el control de la cantidad de veces que se ejecuta el bucle. Pero usted puede usar la variable contador en el bucle. Por ejemplo, aquí hay un bucle que hace que cada pin de E / S de la ALTA Sello por una décima de segundo:
IO_Pin VAR BYTEFOR IO_Pin = 0 A 15HIGH IO_PinPAUSE 100LOW IO_PinNEXT
Normalmente, la variable de contador se incrementa en uno en cada pasada a través del bucle. Puede utilizar el PASO palabra clave para especificar un valor de paso diferente si lo desea. Cuando se utiliza la palabra clave STEP, la estructura básica de la declaración PARA ve así:
PARA mostrador = puesta en valor A extremo valor PASO paso a valorDeclaraciones ...SIGUIENTE
Por ejemplo, usted podría parpadear LEDs sólo las clavijas de número par como éste:
VAR Led ByteFOR Led = 0 A 10 PASO 2high LedPAUSE 100LOW LedNEXT
Otra característica interesante de PARA bucles es que pueden contar hacia atrás. Todo lo que tienes que hacer es especificar un valor inicial que es mayor que el valor final, así:
Liderados VAR ByteFOR Led = 10 A 0 PASO 2high LedPAUSE 100LOW LedNEXT
Esta versión del programa de LED intermitente utiliza un par de PARA bucles a parpadear los LEDs primero en una dirección, y luego en la dirección opuesta. El primero PARA bucle parpadea el LED en los pines 0, 2, 4, 6 y 8. A continuación, el segundo PARA bucle parpadea el LED en los pines 10, 8, 6, 4 y 2. Ambos PARA bucles están contenidas dentro de una HACER lazo que mantiene los LEDs rebotando indefinidamente.
'LED Programa Flasher "Doug Lowe 10 de julio 2011' 'Este programa flashes LED conectado a los pines 0, 2, 4, 6, 8 y 10" de ida y vuelta, al igual que los ojos cylons.' 'Esta versión de los usos del programa PARA bucles '. {$ STAMP BS2} '{$ PBASIC 2.5} Led VAR ByteMain: PARA Led = 0 A 8 PASO 2high LedPAUSE 100LOW LedNEXTFOR Led = 10 A 2 PASO 2high LedPAUSE 100LOW LedNEXTGOTO Principal
Cuando PARA bucles están anidados, el bucle más interno (s) completan su ciclo cada vez que a través del bucle exterior. Si una PARA bucle que se repite diez veces se coloca dentro de un bucle exterior que se repite diez veces, las instrucciones dentro del bucle más interno se ejecutará un total de 100 veces - diez veces para cada una de las diez repeticiones del bucle exterior.
Éste utiliza una combinación externa PARA bucle que varía el tiempo de retardo para el PAUSA declaraciones. El resultado es que los LEDs barrido muy rápida al principio, pero lento en 10 ms en cada repetición del bucle exterior hasta que el retardo alcanza un segundo por LED.
'LED Programa Flasher "Doug Lowe 10 de julio 2011' 'Este programa flashes LED conectado a los pines 0, 2, 4, 6, 8 y 10" de ida y vuelta, al igual que los ojos cylons.' 'Esta versión de los usos del programa anidado For-Next bucles para frenar el 'movimiento de barrido de los LEDs. {$ STAMP BS2} '{$ PBASIC 2.5} Led VAR VAR ByteSpeed wordfor velocidad = 10 A 1000 PASO 10Porque Led = 0 A 8 PASO 2high LedPAUSE SpeedLOW LedNEXTFOR Led = 10 A 2 PASO 2high LedPAUSE SpeedLOW LedNEXTNEXT