Proyectos de electrónica: cómo programar subrutinas pbasic

subrutinas PBASIC son muy valiosos en sus proyectos de electrónica utilizando un procesador de BASIC Stamp. UN subrutina es una sección de un programa que se puede llamar desde cualquier lugar en el programa. Cuando termina la subrutina, el control del programa retrocede al lugar desde el que se llama a la subrutina.

Video: Control display LCD BASIC Stamp

Las subrutinas son útiles porque permiten separar largas porciones de su programa de bucle principal del programa, lo que simplifica el bucle principal del programa para que sea más fácil de entender. Otro de los beneficios de subrutinas es que pueden hacer que su programa más pequeño.

Supongamos que usted está escribiendo un programa que necesita para realizar cálculos complicados varias veces. Si coloca el cálculo complicado en una subrutina, puede llamar a la subrutina de varios lugares en el programa. De esta manera, se escribe el código que realiza el cálculo complicado sólo una vez.

Video: Proyecto Fácil y Barato de Electrónica Sensor Presencia Infrarrojo :D

Para crear y utilizar subrutinas, es necesario utilizar dos comandos PBASIC. La primera es GOSUB, el que llama a la subrutina. Normalmente, se utiliza la GOSUB mando dentro del bucle principal de su programa cada vez que desee llamar a la subrutina. El segundo comando es REGRESO, que es siempre el último comando en la subrutina.

Para crear un subprograma, se empieza con una etiqueta y termina con una REGRESO mando. Entre ellos, se escribe cualquier comando que desea ejecutar cuando el subprograma se llama.

Aquí está un ejemplo de una subrutina que genera un número aleatorio entre 1 y 999 y lo guarda en una variable llamada rnd:

GetRandom: RANDOM RndRnd = Rnd // 999 + 1RETURN 

Para llamar a esta subrutina, sólo tendría que utilizar una GOSUB orden como la siguiente:

GOSUB GetRandom

Esta GOSUB transferencias comando de control a la GetRandom etiqueta. Entonces, cuando el GetRandom subrutina llega a su REGRESO comando, el control salta de nuevo a la orden inmediatamente después de la GOSUB mando.

Video: Curso completo de microcontroladores PIC18

Aquí es un programa completo que utiliza una subrutina para obtener un número aleatorio entre 1 y 1000 y usa el número aleatorio para hacer que el LED en el pin 0 a parpadear a intervalos aleatorios. Puede ejecutar este programa en cualquier circuito Basic Stamp que tiene un LED en el pin 0.

`LED intermitente Programa` Doug Lowe `10 de julio de, 2011 `` Este programa parpadea el LED en el pin 0 al azar`. {$ STAMP BS2}`{$ PBASIC 2.5} Rnd VAR WordLed1 PIN 0DOGOSUB GetRandomHIGH Led1PAUSE RndLOW Led1PAUSE 100LOOPGetRandom: AL AZAR RndRnd = Rnd // 999 + 1RETURN

Cuando se utiliza una subrutina, es vital que se impide su programa accidentalmente “caer en” la subrutina y ejecutarlo cuando no tenía intención de que sea ejecutada. Por ejemplo, supongamos que el programa en el Listado 3-5 utilizó una PARA EL SIGUIENTE bucle en lugar de una HACER bucle, ya que quería a parpadear el LED sólo 100 veces. He aquí un ejemplo de cómo no para escribir ese programa:

Para el contador = 1 A 100GOSUB GetRandomHIGH Led1PAUSE RndLOW Led1PAUSE 100NEXTGetRandom: AL AZAR RndRnd = Rnd // 999 + 1RETURN

¿Ves por qué? Después de la PARA EL SIGUIENTE bucle parpadea el LED 100 veces, el programa continuará con el siguiente comando después de la PARA EL SIGUIENTE lazo, que es la subrutina!

Para evitar que esto ocurra, se puede usar otro comando PBASIC, FIN, que simplemente se le dice al BASIC Stamp que ha llegado al final de su programa, por lo que debe detener la ejecución de comandos. Se podría colocar el FIN después de que el comando SIGUIENTE de comandos, así:

Para el contador = 1 A 100GOSUB GetRandomHIGH Led1PAUSE RndLOW Led1PAUSE 100NEXTENDGetRandom: AL AZAR RndRnd = Rnd // 999 + 1RETURN

A continuación, el programa se detendrá después de la PARA EL SIGUIENTE bucle termina.

Artículos Relacionados