PBASIC FORループは、エレクトロニクスプロジェクトのBASIC Stampをループを一定回数実行させます。また、複数のI / Oピンでアクションを実行するための優れたプログラミングツールです。したがって、FORループは、LEDフラッシャープログラムを実装する理想的な方法です。
FORループの基本構造は次のようになります。
FOR カウンタ = 開始値 TO 終了値 ステートメント… NEXT
ピン0のLEDを10回点滅させる例を次に示します。
<!この例では、ループが10回実行されます。この例では、ループが10回実行されます。変数Xの値は、ループのたびに1ずつ増加します。前の例では、プログラムは実際にカウンタ変数を使用しませんでした。これはFORループでよく見られます。カウンター変数の唯一の目的は、ループの実行回数を制御することです。しかし、ループ内でカウンタ変数を使用することができます。たとえば、スタンプのすべてのI / Oピンを10分の1秒HIGHにするループを次に示します。
<! - 2 - >
IO_Pin VAR BYTE FOR IO_Pin = 0 TO 15 HIGH IO_Pin PAUSE 100 LOW IO_Pin NEXT通常、ループを通過するたびにカウンタ変数が1ずつ増加します。必要に応じて、STEPキーワードを使用して異なるステップ値を指定することができます。 STEPキーワードを使用すると、FORステートメントの基本構造は次のようになります。
FORカウンタ
=
開始値 TO 終了値 STEP ステップ値 ステートメント… NEXT たとえば、偶数番号のピンだけでLEDをフラッシュすることができます。 <! - 3 - > LedのためのVARバイトのリード= 0〜10ステップ2 HIGH Led PAUSE 100 LOW NEXT
FORループのもう一つの興味深い特徴は、それらが後方に数えられることです。
Led VAR Byte for Led = 10 TO 0ステップ2 HIGH Led PAUSE 100 LOW LED NEXTこのバージョンのLEDフラッシャーは、次のように終了値より大きい開始値を指定するだけです。プログラムは一対のFORループを使用してLEDを最初に一方向に点滅させ、次に反対方向に点滅させます。最初のFORループはピン0,2,4,6、および8のLEDを点滅させます。次に、2番目のFORループがピン10,8,6,4および2のLEDを点滅させます。両方のFORループはDO LEDは無期限に前後にバウンスします。
<! - 1 - >
'LEDフラッシャープログラム' Doug Lowe '2011年7月10日「このプログラムは、0,2,4,6,8,10というピンに接続されたLEDをサイロンの目のように前後に点滅させます。 "このバージョンのプログラムはFORループを使用します。'$ STAMP BS2' '{$ PBASIC 2. 5} VARバイト主導:Led = 0〜8ステップ2 HIGH Led PAUSE 100 LOW LED = 10〜2ステップ2 HIGH Led PAUSE 100 LOW NEXT GOTO Main
FORループがネストされているとき、最も内側のループは、毎回外側ループを通るサイクル全体を完了します。 10回繰り返すFORループが10回繰り返す外側ループ内に置かれた場合、最も内側のループ内のステートメントは、外側ループの10回の繰り返しのそれぞれに対して10回合計100回実行されます。
<! - 2 - >これは、PAUSE文の遅延時間を変化させる外側のFORループを使用します。その結果、LEDは最初は非常に速くスイープされますが、LEDが1秒に達するまで外部ループが繰り返されるたびに10ミリ秒ほど遅くなります。
'LEDフラッシャープログラム' Doug Lowe '2011年7月10日「このプログラムは、サイロンの目のように、0番、2番、4番、6番、8番、10番ピンに接続されたLEDを前後に点滅させます。ネストされたFOR-NEXTループを使用してLEDのスイープ動作を遅くします。 '= {0 STAMP BS2}' {$ PBASIC 2. 5} VARバイト速度VARワードのスピード= 10〜1000ステップ10のLed = 0〜8ステップ2ハイLed PAUSEスピードLED LED = 10〜2 STEP 2 HIGH Led PAUSEスピードLOW LEX NEXT NEXT