Programando en PBasic

Introducción á programación pBasic. Lenguaxe coa que se fan os programas para o Basic Stamp II

Programando en PBASIC

  • Es un lenguajedesarrollado específicamente para los Basic Stamps
  • Hay macros específicos como RCTIME, SEROUT
  • No hay números de línea.
  • El programa se ejecuta línea por línea.

Para biaxar o programa que se usa para escribir o código ir á páxina de parallax.
Na mesma páxina de parallax, baixar un tutorial en español moi útil para manexar o programa: http://www.parallax.com/dl/docs/books/edu/BSManSpanish.pdf
Nesta páxina hai máis información en castelán sobre o manexo dos BasicStamps: http://www.parallax.com/html_pages/downloads/siccurriculum/documentation_sic_curriculum.asp

Diagramas de flujo

Es importante tener clara la secuencia que el programa tiene que ejecutar. Para aclararnos al empezar al pensar en realizar un programa, podemos hacerlo en pseudocódigo.

1. Bajar las escaleras del metro.
2. Comprar un billete.
3. Pasarlo por la maquina.
4. Entrar a la estación.
5. Encontrar el andén.
6. Esperar a que llegue el tren.
7. Esperar sonido de entrada.
8. Subir al tren.

Esto es muy rutinario y se ejecuta con un poco de intuición.
Sin embargo en la programación tipo Basic o Pbasic seestán haciendo saltos todo el tiempo por lo que la secuencia sepuede convertir en:

1. Bajar las escaleras del metro.
2. Comprar un billete.
3. Entrar a la estación.
4. Pasarlo por la maquina.
5. Esperar a que llegue el tren.
6. Encontrar el anden.
7. Esperar sonido de entrada.
8. Subir al tren.

Creando resultados inesperados, o haciendo que no funcione el programa como debería, encontrándonos con los famosos “bugs” de programación.

Por esta razón nunca esta de más hacer un diagrama deflujo con las acciones que queremos que realice el programaen el microcontrolador.

Los Labels o etiquetas.

En cualquier punto del programa se puede poner un Label, solo basta quele demos el nombre que queramos y terminarlo con dos puntos.
Ejemplos de Labels:

Inicio:
Casa:
Enciende:
Fin:
Etc:

Son puntos del programa a los cuales se puede direccionar el flujo del programa.
Recordemos que el nombre se lo damos nosotros y es arbitrario, sinembargo es útil darle nombres que nos recuerden lo que sucede enel programa en ese sitio específico.

Loops de Programación.

Los Stamps o cualquier tipo de microcontrolador estarán lamayoría del tiempo corriendo en un loop de programación.

Como hacer un Loop ?
Se debe poner un Label al principio del loop y cerrarlo despuésde las instrucciones a realizar, utilizando el comando GOTO allabel que hemos utilizado en un principio.
En el siguiente ejemplo, MILOOP es un Label cuando termina de ejecutarlas instrucciones la instrucción GOTO MILOOP hace que el flujode programación vuelva a MILOOP, para volver a ejecutar lasinstrucciones.

MILOOP:

blafdskgjasldfks
sldkfjsadlkfjasdlfkja
sdñflkasdñlfkas
adsñljkfaslkfsañlkfjañd
sdñflksjadñflkasñdl
asd

GOTO MILOOP

Estructuras de Programación IF-THEN.

Cuando se quiere que el Stamp haga algo dependiendo de algunacondición se utiliza el comando IF, a diferencia de losotros lenguajes de programación donde si la condición secumple el flujo de programación sigue en la siguientelínea, la condición IF manda al programa a un Label dondese ejecutará lo que queramos que suceda.
La instrucción IF verifica la condición del enunciadoescrito y si esta condición es verdadera saltara al Label quehallamos escrito a continuación, sino cumple la condiciónel programa se seguirá ejecutando en la línea que sigue.

Veamos el siguiente ejemplo, si la condición se cumple (IN5 = 1) el flujo de programación salta a PRENDE, si no fuera cierta lacondición (IN5=0), continuaría y ejecutaría lainstrucción GOTO INICIO saltando al Label INICIO completando unloop de programación, para volver a verificar lacondición.

INICIO:

IF IN5 = 1 THEN PRENDE

GOTO INICIO

PRENDE:

HIGH 10
HIGH 11
HIGH 12
PAUSE 500
LOW 10
LOW 11
LOW 12

GOTO INICIO

A partir de la sintaxis de compilación de la versión delPbasic 2.5, la instrucción IF funciona de la forma IF-Then-Elsesin tener tantos labels y saltos en el flujo del programa principal.También es posible utilizar la instrucción ELSEIF paraevaluar una nueva condición después de haber evaluado elprimer IF.

Veamos el ejemplo anterior con este nuevo formato.

INICIO:

IF IN5 = 1 THEN
HIGH 10
HIGH 11
HIGH 12
PAUSE 500
LOW 10
LOW 11
LOW 12
ELSE
GOTO INICIO
ENDIF

Estructuras de Programación FOR-NEXT.

Las instrucciones For-Next ejecutan en un loop varias instrucciones decódigo, y lo hacen un determinado número de veces,el número de veces que se realizan depende de elnúmero de ciclos que determinemos en el programa. En elsiguiente ejemplo las instrucciones instrucc1, 2, 3,4,5 seejecutarán 10 veces, después de la décima seguirá el flujo de programación y se ejecutará lainstrucción GOTO Inicio.


Inicio:
FOR contador = 0 to 10
instrucc 1
instrucc 2
instrucc 3
instrucc 4
instrucc 5
NEXT
GOTO Inicio

Revisar el resto de instrucciones de Flujo en las copias dadas en clase.

GOSUB…RETURN

BRANCH

ON …. GOTO

ON…. GOSUB

DO…LOOP

O texto desta páxina está collido dos apuntes da asignaturade interfaces físicas de Jose Lozano. Para profundizarmáis sobre o tema ir aquí