Table des matières

Sous-programmes

retour

Au sujet des Sous-Programmes

Un sous-programme est un petit programme à l'intérieur du programme principal. Les sous-programmes sont utilisés typiquement quand une opération a besoin d'être répétée plusieurs fois dans différentes parties du programme principal.

Il y a deux usages principaux des sous-programmes :

Quand le programme du PIC arrive à un sous-programme, il sauve son adresse dans le programme présent avant de sauter au commencement de celle-ci, ou appel le sous-programme. Une fois qu'il atteint la fin du sous-programme il retourne au programme principal, y continue de parcourir le code qu'il a laissé avant.

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 Largeur des Instructions Nombre de sous programmes appelés
10F*, 12C5*, 12F5*, 16C5*, 16F5* 12 1
12C*, 12F*, 16C*, 16F*, excepté ceux au-dessus 14 7
18F*, 18C* 16 31

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.

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.

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 :

Buzz

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 :

BougeBras NouveauX, NouveauY, 10

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

'Le code du sous-programme vient ici

end sub

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 BougeBras(BrasX, BrasY, BrasZ) #NR

'Le code du sous-programme vient ici

end sub

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 :
· BrasX = NoveauX
· BrasY = NouveauY
· BrasZ = 10

”#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.

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 BougeBras(BrasX As Word, BrasY As Word, BrasZ As Word)
… end sub

Voir aussi : fonctions

retour