Projets électroniques: comment utiliser pour les boucles dans le code PBASIC

Le PBASIC pour la boucle fera le BASIC Stamp dans votre projet de l'électronique exécuter une boucle un certain nombre de fois. Il est également un outil de programmation idéal pour effectuer une action sur plusieurs broches d'E / S. Ainsi, un POUR boucle est le moyen idéal pour mettre en œuvre un programme LED Flasher.

La structure de base d'un POUR boucle ressemble à ceci:

POUR compteur = commencer valeur À valeur finaleDéclarations ...SUIVANT

Voici un exemple qui clignote la LED sur la broche 0 dix fois:

X VAR BYTEFOR x = 1 à 10HIGH 0PAUSE 500LOW 0PAUSE 500NEXT

Dans cet exemple, la boucle est exécutée dix fois. La valeur de la variable X est augmenté de 1 à chaque passage dans la boucle.




Dans l'exemple précédent, le programme n'a pas réellement utiliser la variable compteur. Voilà commun POUR loops- parfois le seul but pour la variable compteur est de contrôler combien de fois la boucle est exécutée. Mais vous pouvez utiliser la variable compteur dans la boucle. Par exemple, voici une boucle qui fait de chaque broche I / O sur le haut de timbre pour un dixième de seconde:

IO_Pin VAR BYTEFOR IO_Pin = 0 à 15HIGH IO_PinPAUSE 100LOW IO_PinNEXT

Normalement, la variable compteur est augmenté de un à chaque passage dans la boucle. Vous pouvez utiliser le ÉTAPE mot-clé pour spécifier une valeur de pas différente si vous voulez. Lorsque vous utilisez le mot-clé de STEP, la structure de base de la déclaration POUR ressemble à ceci:

POUR compteur = commencer valeur À valeur finale ÉTAPE étape-valeurDéclarations ...SUIVANT

Par exemple, vous pourriez clignote LED sur seulement les broches impaires comme ceci:

VAR conduit ByteFOR Led = 0 à 10 STEP 2high LedPAUSE 100LOW LedNEXT

Une autre caractéristique intéressante de POUR boucles est qu'ils peuvent compter à rebours. Tout ce que vous avez à faire est de spécifier une valeur de départ qui est plus grande que la valeur de fin, comme ceci:

Dirigée VAR ByteFOR Led = 10 à 0 STEP 2high LedPAUSE 100LOW LedNEXT

Cette version du programme LED Flasher utilise une paire de POUR boucles à clignoter les DEL dans un sens, puis dans le sens opposé. La première POUR boucle clignoter les voyants sur les broches 0, 2, 4, 6 et 8. Ensuite, la deuxième POUR boucle clignoter les voyants sur les broches 10, 8, 6, 4 et 2. Les deux POUR les boucles sont contenus dans un FAIRE boucle qui maintient les LEDs rebondissant indéfiniment.

'LED Programme Flasher "Doug Lowe' 10 Juillet, 2011 '' Ce programme clignote LED connecté à broches 0, 2, 4, 6, 8, et 10 'avant et en arrière, comme des yeux Cylons.' 'Cette version des utilisations de programme POUR boucles. {$ STAMP BS2} {$ PBASIC 2.5} Led VAR ByteMain: pour LED = 0 à 8 STEP 2high LedPAUSE 100LOW LedNEXTFOR Led = 10 à 2 STEP 2high LedPAUSE 100LOW LedNEXTGOTO principal

Quand POUR boucles sont imbriquées, la boucle (s) plus à l'intérieur de compléter l'ensemble de leur cycle chaque fois à travers la boucle externe. Si un POUR boucle qui se répète dix fois est placée dans une boucle externe qui se répète dix fois, les états la plus interne dans la boucle d'exécution d'un total de 100 fois - dix fois pour chacune des dix répétitions de la boucle externe.

Celui-ci utilise un extérieur POUR boucle qui fait varier le temps de retard pour le PAUSE déclarations. Le résultat est que les LED balaient très rapide au début, mais lente de 10 ms à chaque répétition de la boucle extérieure jusqu'à ce que le retard atteint une seconde par LED.

'LED Programme Flasher "Doug Lowe' 10 Juillet, 2011 '' Ce programme clignote LED connecté à broches 0, 2, 4, 6, 8, et 10 'avant et en arrière, comme des yeux Cylons.' 'Cette version des utilisations de programme nichée boucles FOR-NEXT pour ralentir le «mouvement de balayage de la LED. {$ STAMP BS2} {$ PBASIC 2.5} Led VAR ByteSpeed ​​VAR WordFOR Speed ​​= 10 à 1000 STEP 10Pour Led = 0 à 8 STEP 2high LedPAUSE SpeedLOW LedNEXTFOR Led = 10 à 2 STEP 2high LedPAUSE SpeedLOW LedNEXTNEXT

» » » » Projets électroniques: comment utiliser pour les boucles dans le code PBASIC