Elektronische Projekte: So programmieren PBASIC Subroutinen

PBASIC Subroutinen sind von unschätzbarem Wert in der Elektronik-Projekte ein BASIC Stamp Prozessor. EIN Subroutine ist ein Abschnitt eines Programms, das von einem beliebigen Ort in dem Programm aufgerufen werden kann. Wenn das Unterprogramm beendet ist, die Kontrolle über das Programm springt zurück zu dem Ort, von dem die Subroutine aufgerufen wurde.

Subroutinen sind nützlich, weil sie lassen Sie lange Teile des Programms aus dem Programm der Hauptschleife trennen, die die Hauptprogrammschleife vereinfacht es leichter verständlich zu machen. Ein weiterer Vorteil von Subroutinen ist, dass sie das Programm kleiner machen können.

Angenommen, Sie ein Programm zu schreiben, die komplizierte Berechnung mehrmals durchführen muss. Wenn Sie die komplizierte Berechnung in einem Unterprogramm platzieren, können Sie das Unterprogramm aus mehreren Stellen im Programm aufrufen. Auf diese Weise schreiben Sie den Code, der nur einmal die komplizierte Berechnung durchführt.

So erstellen und verwenden Subroutinen, müssen Sie zwei PBASIC Befehle zu verwenden. Die erste ist, GOSUB, die das Unterprogramm aufruft. Sie verwenden in der Regel die GOSUB Befehl in Ihrem Hauptschleife des Programms, wenn Sie das Unterprogramm aufrufen möchten. Der zweite Befehl ist RÜCKKEHR, was immer der letzte Befehl in der Subroutine.

Um ein Unterprogramm erstellen, können Sie mit einem Label beginnen und enden mit einem RÜCKKEHR Befehl. Zwischen ihnen, schreiben Sie, was Befehle, die Sie ausführen möchten, wenn das Unterprogramm aufgerufen wird.

Hier ist ein Beispiel für ein Unterprogramm, das eine Zufallszahl zwischen 1 und 999 und speichert sie in einer Variablen erzeugt benannt Rnd:

GetRandom: RANDOM RndRnd = Rnd // 999 + 1RETURN 

Um dieses Unterprogramm aufrufen, würden Sie einfach ein verwenden GOSUB Befehl wie folgt aus:

GOSUB getRandom

Dies GOSUB Kommando überträgt die Steuerung an die getRandom Etikette. Wenn dann das getRandom Unterprogramm erreicht sein RÜCKKEHR Befehl springt die Steuerung zurück auf den Befehl sofort die folgenden GOSUB Befehl.

Hier ist ein komplettes Programm, das eine Unterroutine verwendet eine Zufallszahl zwischen 1 und 1,000 zu erhalten und verwendet die Zufallszahl zu bewirken, dass die LED auf Pin 0 in zufälligen Intervallen zu blinken. Sie können dieses Programm auf jedem Basic Stamp Schaltung ausführen, die auf Pin 0 eine LED hat.

'LED-Blinker-Programm' Doug Lowe '10. Juli 2011' 'Dieses Programm blinkt die LED an Pin 0 zufällig. " {$ STAMP BS2} {$ PBASIC 2.5} Rnd VAR WordLed1 PIN 0DOGOSUB GetRandomHIGH Led1PAUSE RndLOW Led1PAUSE 100LOOPGetRandom: RANDOM RndRnd = Rnd // 999 + 1RETURN

Wenn Sie ein Unterprogramm verwenden, ist es wichtig, dass Sie versehentlich Ihr Programm verhindern # 147-Absturz in # 148- Ihre Unterprogramm und Ausführung es, wenn Sie es nicht die Absicht, ausgeführt zu werden. Zum Beispiel nehme an, dass das Programm in Listing 3-5 ein gebrauchtes FÜRS NÄCHSTE Schleife anstelle eines MACHEN Schleife, weil Sie wollten die LED nur 100-mal zu blinken. Hier ist ein Beispiel dafür, wie nicht das Programm zu schreiben:

Für Counter = 1 TO 100GOSUB GetRandomHIGH Led1PAUSE RndLOW Led1PAUSE 100NEXTGetRandom: RANDOM RndRnd = Rnd // 999 + 1RETURN

Siehst du, warum? Nach dem FÜRS NÄCHSTE Schleife blinkt die LED 100 Mal, wird das Programm mit dem nächsten Befehl nach dem weiter FÜRS NÄCHSTE Schleife, die das Unterprogramm ist!

Um zu verhindern, dass nicht passiert, können Sie noch eine andere PBASIC Befehl zu verwenden, ENDE, die einfach erzählt die BASIC Stamp, dass Sie das Ende des Programms erreicht haben, so sollte es die Ausführung von Befehlen zu stoppen. Sie würden legen die ENDE Befehl nach dem NÄCHSTER Befehl wie folgt aus:

Für Counter = 1 TO 100GOSUB GetRandomHIGH Led1PAUSE RndLOW Led1PAUSE 100NEXTENDGetRandom: RANDOM RndRnd = Rnd // 999 + 1RETURN

Dann wird das Programm nach dem Stopp FÜRS NÄCHSTE Schleife beendet.

Menü