Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
|
gcbasic:syntaxe:sous-programmes [2009/11/01 19:40] per |
gcbasic:syntaxe:sous-programmes [2009/11/01 22:08] (Version actuelle) per |
||
|---|---|---|---|
| Ligne 13: | Ligne 13: | ||
| Normalement, il est possible que les sous-programmes peuvent appeler d'autres sous-programmes. Cependant il y a des limites au nombre de fois qu'un sous-programme puisse en appeler d'autre, ceci varie selon les puces, comme on l'observe dans la table suivante: | Normalement, il est possible que les sous-programmes peuvent appeler d'autres sous-programmes. Cependant il y a des limites au nombre de fois qu'un sous-programme puisse en appeler d'autre, ceci varie selon les puces, comme on l'observe dans la table suivante: | ||
| - | Famille de PICs | + | ^ Famille de PICs ^Largeur des Instructions ^Nombre de sous programmes appelés ^ |
| - | + | | 10F*, 12C5*, 12F5*, 16C5*, 16F5* | 12 | 1 | | |
| - | Ancho de Instruccion | + | | 12C*, 12F*, 16C*, 16F*, excepté ceux au-dessus | 14 | 7 | |
| - | + | |18F*, 18C* | 16 |31| | |
| - | 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. | + | Ces limites sont dus à la quantité de mémoire dans le PIC qui sauvegarde l'adresse avant de sauter au nouveau sous-programme. Quelques commandes de GCBASIC sont des sous-programmes, de manière qu'on ne pourra se permettre que 2 à 3 appels à des sous-programmes en plus de son programme principal. |
| - | 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. | + | Autre commodité des sous-programmes est qu'ils permettent d'accepter des paramètres. Ceux sont des valeurs qui sont passées depuis le programme principal au sous-programme quand il est appelé, et ils sont retournés quand le sous-programme se termine. |
| - | Usando Subrutinas | + | ===== Utilisation des sous-programmes ===== |
| - | + | Appeler un sous-programme est très simple - tout ce qu'on a besoin est le nom du sous-programme, et une liste de paramètres. Ce code pourra appeler un sous-programme appelé "Buzz" qui n'a pas de paramètres : | |
| - | 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 | 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: | + | Si le sous-programme a des paramètres, alors ils devront être listés après le nom du sous-programme. Ceci pourrait être la commande pour appeler un sous-programme appelé "BougeBras" celui-ci a trois paramètres : |
| - | MueveBrazo NuevaX, NuevaY, 10 | + | BougeBras NouveauX, NouveauY, 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: | + | Créer un sous-programme est presque toujours très simple. Il devra avoir une ligne au début qui contient "sub ", et ensuite le nom du sous-programme. Il faut aussi avoir une ligne à la fin du sous-programme que doit dire : "end sub". Pour créer un sous-programme appelé "Buzz", ceci est le code requis : |
| sub Buzz | sub Buzz | ||
| - | 'codigo para la subrutina va aqui | + | 'Le code du sous-programme vient ici |
| end sub | 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: | + | Si le sous-programme a des paramètres, alors il faut mettre la liste après le nom. Par exemple, pour définir le sous-programme "MueveBrazo" on utilise ce code: |
| - | sub MueveBrazo(BrazoX, BrazoY, BrazoZ) #NR | + | sub BougeBras(BrasX, BrasY, BrasZ) #NR |
| - | el codigo para la subrutina va aqui | + | 'Le code du sous-programme vient ici |
| end sub | 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: | + | Dans le sous-programme au dessus, BrasX, BrasY and BrasZ sont toutes des variables. si l'appel au dessus est utilisé, les variables devront avoir ces valeurs au début du sous-programme : |
| - | · BrazoX = NuevoX | + | · BrasX = NoveauX |
| - | · BrazoY = NuevoY | + | · BrasY = NouveauY |
| - | · BrazoZ = 10 | + | · BrasZ = 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. | + | "#NR" signifie "No Return" (Ne pas retourner). si c'est spécifié, alors GCBASIC ne copiera pas les valeurs des paramètres dans les variables originales quand le sous-programme se terminera. Si "#NR" es enlevé de la fin de la ligne, alors GCBASIC copiera les valeurs au retour - dans l'exemple, NouveauX pourra être mis comme BrasX et NouveauY prendra la valeur de BrasY quand le sous-programme se terminera. |
| - | 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: | + | Il est possible d'utiliser des variables de type word (16-bit) comme paramètres pour les sous-programmes - on ajoute juste "As Word" à la fin du nom du paramètre. Par exemple : |
| - | sub MueveBrazo(BrazoX As Word, BrazoY As Word, BrazoZ As Word) | + | sub BougeBras(BrasX As Word, BrasY As Word, BrasZ As Word) |
| ... | ... | ||
| end sub | end sub | ||
| - | Vea Tambien: | + | Voir aussi : [[fonctions]] |
| - | Funciones | + | |
| [[. |retour]] | [[. |retour]] | ||