2022.7.7
前へ
次へ
ホームページトップへ戻る


PIC−USBIO using BASIC

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
USBインターフェースを内蔵したPICを使ってWindowsパソコンで外部回路を制御するための各種I/O基板の製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第19回]



●GOSUB、RETURN

ずっとソフトウェアの説明ばかり書いています。
なかなか肝心のハードウェアの紹介に入れません。
もうとっくの昔にハードは出来上がっているのですが(もっともまだ試作の段階で未テストの状態です)。
書き始めた当初は試作基板が出来上がるまでのつなぎに…、というつもりだったのですが、いざ書き始めてみるとせめて区切りがつくところまでは書きたい気持ちがだんだんと強くなって、ところが書くのと並行してソフトウェアそのものの機能強化にも取り組んできましたので、それでなかなかキリがつきません。

その間、ソフトウェアについて大きな方針転換をすることになってしまいました。
この先ハードウェアを含めて説明を進めていくためにはソフトウェアの設計方針の「大転換」について書かないわけにはいきません。
ということで、あともう少しですがソフトウェアについて書いたうえでハードウェアの紹介に入りたいと思います。
今しばらくのお付き合いをお願いいたします。

それで「大転換」について書く前に区切りとしまして今回のテーマGOSUBとRETURNについて簡単に説明をします。
GOSUBもRETURNもBASICには当たり前の機能ですから今更取り上げて書く必要もないほどのものなのですが。
過去記事を確認したところGOTOについては書いていますが([第10回])GOSUBについてはGOTOのついでに書いただけでした。
ふつうのBASICでは「GOSUB 行番号」であることが一般的なのですがPIC−USBIO用BASICではプログラムに行番号を用いないモードもあるため、GOTO文と同じように「GOSUB ラベル」という使い方をします。
下は使用例です。

GOSUB文はGOTO文と似ていますがGOTO文がプログラム実行の流れを変える「分岐命令文」であるのに対して、GOSUB文はサブルーチンCALL文なのでサブルーチンに分岐したあとRETURN文によってGOSUB文の次の行に戻ってくるところが根本的に違っています。
上記例では50行のGOSUB *ABCの実行によって80行の*ABCに飛んだあと、100行のRETURN文で60行に戻っていることがわかります。
この場合60行に戻ったあと再び*ABC以降のサブルーチンが「不正に」実行されてしまわないために70行のSTOP文は必須です。
STOP文がないと2度目に実行される*ABCサブルーチンの最後のRETURN文でエラーが発生します。
なお110行はRETURN文によってそこで実行の流れが変わることを確認するためのダミー行です(この行は実行されません)。

PIC−USBIO using BASIC[第19回]
2022.7.7upload

前へ
次へ
ホームページトップへ戻る