Vidéo: Basics of SPYDER IDE for Python Programmers 2024
Les sous-routines PBASIC sont inestimables dans vos projets électroniques utilisant un processeur BASIC Stamp. Un sous-programme est une section d'un programme qui peut être appelée à partir de n'importe quel endroit du programme. Lorsque le sous-programme se termine, le contrôle du programme revient à l'emplacement à partir duquel le sous-programme a été appelé.
Les sous-programmes sont utiles car ils vous permettent de séparer de longues portions de votre programme de la boucle principale du programme, ce qui simplifie la boucle principale du programme pour en faciliter la compréhension. Un autre avantage des sous-programmes est qu'ils peuvent rendre votre programme plus petit.
Supposons que vous écrivez un programme qui doit effectuer plusieurs calculs compliqués. Si vous placez le calcul compliqué dans un sous-programme, vous pouvez appeler le sous-programme à partir de plusieurs endroits du programme. De cette façon, vous écrivez le code qui effectue le calcul complexe une seule fois.
Pour créer et utiliser des sous-programmes, vous devez utiliser deux commandes PBASIC. Le premier est GOSUB, qui appelle le sous-programme. Vous utilisez généralement la commande GOSUB dans la boucle principale de votre programme lorsque vous voulez appeler le sous-programme. La deuxième commande est RETURN, qui est toujours la dernière commande du sous-programme.
Pour créer un sous-programme, vous commencez par une étiquette et terminez avec une commande RETURN. Entre eux, vous écrivez toutes les commandes que vous voulez exécuter lorsque le sous-programme est appelé.
Voici un exemple de sous-programme qui génère un nombre aléatoire entre 1 et 999 et l'enregistre dans une variable nommée Rnd:
GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 RETURN
Pour appeler ce sous-programme, vous utiliseriez simplement une commande GOSUB comme ceci:
GOSUB GetRandom
Cette commande GOSUB transfère le contrôle à l'étiquette GetRandom. Ensuite, lorsque le sous-programme GetRandom atteint sa commande RETURN, le contrôle revient à la commande immédiatement après la commande GOSUB.
Voici un programme complet qui utilise un sous-programme pour obtenir un nombre aléatoire compris entre 1 et 1 000 et utilise le nombre aléatoire pour faire clignoter la DEL sur la broche 0 à des intervalles aléatoires. Vous pouvez exécuter ce programme sur n'importe quel circuit Stamp de base qui a une LED sur la broche 0.
'Programme clignotant LED' Doug Lowe '10 juillet 2011 "Ce programme clignote la LED sur la broche 0 au hasard.' '{$ PBASIC 2. 5} Rnd VAR Mot Led1 PIN 0 DO GOSUB GetRandom HAUT Led1 PAUSE Rnd FAIBLE Led1 PAUSE 100 BOUCLE GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 RETOUR
Lorsque vous utilisez un sous-programme, il est vital que vous empêchiez votre programme de tomber accidentellement dans votre sous-programme et de l'exécuter lorsque vous n'aviez pas l'intention de l'exécuter.Par exemple, supposons que le programme du Listing 3-5 utilise une boucle FOR-NEXT à la place d'une boucle DO car vous ne voulez faire clignoter la LED que 100 fois. Voici un exemple de pas pour écrire ce programme:
FOR Counter = 1 à 100 GOSUB GetRandom HIGH Led1 PAUSE Rnd LOW Led1 PAUSE 100 SUIVANT GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 RETOUR
Voyez-vous pourquoi? Après que la boucle FOR-NEXT clignote la LED 100 fois, le programme continuera avec la commande suivante après la boucle FOR-NEXT, qui est la sous-routine!
Pour éviter que cela ne se produise, vous pouvez utiliser une autre commande PBASIC, END, qui indique simplement au Stamp BASIC que vous avez atteint la fin de votre programme, donc il devrait arrêter d'exécuter des commandes. Vous devez placer la commande END après la commande NEXT, comme ceci:
FOR Counter = 1 à 100 GOSUB GetRandom HIGH Led1 PAUSE Rnd LOW Led1 PAUSE 100 SUIVANT FIN GetRandom: RANDOM Rnd Rnd = Rnd // 999 + 1 RETURN > Ensuite, le programme s'arrêtera après la fin de la boucle FOR-NEXT.