Outils d'utilisateurs

Outils du Site


gcbasic:syntaxe:sous-programmes

Ceci est une ancienne révision du document ! —-

Sous-programmes

retour

Acerca de Subrutinas

Una subrutina es un programa pequeño dentro del programa principal. Las subrutinas son usadas tipicamente cuando una operacion necesita ser repetida varias veces en diferentes partes del programa principal.

Hay dos usos principales para las subrutinas:
· Mantener los programas claros y faciles de leer.
· Reducr el tamaño de los programas permitiendo secciones comunes ser reusadas.

Cuando el programa del PIC llega a una subrutina el salva su localizacion en el presente programa antes de saltar al comienzo de esta, o llama la subrutina. Una vez que alcanza el final de la surutina el retorna al programa principal, y continua corriendo el codigo que dejo previamente.

Normalmente, es posible que las subrutinas puedan llamar otras subrutinas. Entonces hay limites al numero de veces que una subrutina pueda llamar a otra, esto varia de chip en chip, como se observa en la tabla siguiente:
Familia dePICs

Ancho de Instruccion

Numero de subs llamadas
10F*, 12C5*, 12F5*, 16C5*, 16F5*

12

1
12C*, 12F*, 16C*, 16F*, except those above

14

7
18F*, 18C*

16

31

Esos limites son debidos al monto de memoria en el PIC el cual salva la localizacion antes de brincar a una nueva subrutina. Algunos comandos de GCBASIC son subrutinas, de manera que usted podria permitirse de 2 a 3 llamadas a subrutinas mas de la que su programa pueda tener.

Otra comodidad de las subrutinas es que ellas se permiten aceptar parametros. Esos son valores que son pasados desde le programa principal a la subrutina cuando ella es llamada, y son retornados cuando la subrutina finaliza.

Usando Subrutinas

Llamar a una subrutina es muy sencillo - todo lo que se necesita es el nombre de la subrutina, y una lista de parámetros. Este código podra llamar a una subrutina llamada “Buzz” que no tiene parametros:

Buzz

Si la subrutina tiene parametros, entonces ellos deberan ser listados despues del nombre de la subrutina. Este podria ser el comando para llamar una subrutina llamada “MueveBrazo” esta tiene tres parametros:

MueveBrazo NuevaX, NuevaY, 10

Crear una subroutina casi siempre es tan simple. Debera haber una linea al comienzo la cual tiene “sub ”, y entonces el nombre de la subrutina. Tambien, se necesita tener una linea al final de la subrutina que debe decir: “end sub”. Para crear una subrutina llamada “Buzz”, este es el codigo requerido:

sub Buzz

'codigo para la subrutina va aqui

end sub

If the subroutine has parameters, then they need to be listed after the name. For example, to define the “MueveBrazo” sub used above, use this code:

sub MueveBrazo(BrazoX, BrazoY, BrazoZ) #NR

el codigo para la subrutina va aqui

end sub

En la subrutina de arriba, BrazoX, BrazoY and BrazoZ son todas variables. si la llamada de arriba es usada, las variables deberan tener esos valores al comienzo de la subrutina:
· BrazoX = NuevoX
· BrazoY = NuevoY
· BrazoZ = 10

”#NR” significa “No Return” (No Devolver). si es especificado, entonces GCBASIC no copiara los valores de los parametros hacia atras dentro de las viariables originales cuando la subrutina finaliza. Si ”#NR” es removido del final de la linea, entonces GCBASIC copiara los valores hacia atras - en el ejemplo, NuevoX podria ser puesta como BrazoX y NuevoY tomaria el valor de BrazoY cuando la subrutina finalize.

Es posible usar variables tipo word (16-bit) como parámetros para las subrutinas - justo añada “As Word” al final del nombre del parámetro. Por ejemplo:

sub MueveBrazo(BrazoX As Word, BrazoY As Word, BrazoZ As Word)
… end sub

Vea Tambien:
Funciones

gcbasic/syntaxe/sous-programmes.1256942564.txt.gz · Dernière modification: 2009/10/30 23:42 par per