解説 制御用外部関数(USBCALL.BAS) | |
EXTERNAL SUB POPEN IF UsbFind<0 THEN STOP END SUB EXTERNAL SUB POUT(P,D) IF USBOUT(P,D)<0 THEN STOP END SUB EXTERNAL FUNCTION PIN(P) LET R=UsbInp(P) IF R<0 THEN STOP ELSE LET PIN=R END FUNCTION EXTERNAL SUB PCLOSE LET R=UsbCose END SUB EXTERNAL FUNCTION UsbFind ASSIGN "CallHspUSB.dll","Usbfind" END FUNCTION EXTERNAL FUNCTION UsbInp(P) ASSIGN "CallHspUSB.dll","UsbInp" END FUNCTION EXTERNAL FUNCTION UsbOut(P,D) ASSIGN "CallHspUSB.dll","UsbOut" END FUNCTION EXTERNAL FUNCTION UsbClose ASSIGN "CallHspUSB.dll","UsbClose" END FUNCTION |
◆USBデバイス初期化命令 最初に1回実行する MAINプログラムよりCALL POPEN で呼び出す 関数UsbFindがエラーを返した場合は停止する ◆データ出力命令 Pはポート番号(0または1を指定),Dは出力データ ポート0のデータ範囲は0〜255,ポート1のデータ範囲は0〜15 MAINプログラムよりCALL POUT(P,D) で呼び出す 関数UsbOutがエラーをを返した場合は停止する ◆データ入力関数 Pはポート番号(0または1を指定),データは整数型 ポート0または1を指定し、ポートからデータを読み込む。 事前に呼び込むポートのビットに1を立てMAINプログラムより LET N=PIN(P)の要領で呼び出し値を返す 関数UsbInpがエラーをを返した場合は停止する ◆USBデバイスを閉じる 最後に1回実行する MAINプログラムよりCALL PCLOSE で呼び出す ◇以下はCallHspUSB.dllを呼び出す手続き ◆SUB POPENから呼び出され、USB-IOを初期化する CallHspUSB.dllのUsbfind関数を呼び出し、戻り値は整数型 呼び出し成功時は0、失敗時は−1または−2を返す ◆FUNCTION PINから呼び出され、指定したUSB-IOポートから値を返す CallHspUSB.dllのUsbInp関数を呼び出し、戻り値は整数型 呼び出し成功時はポートの入力値、失敗時は−1または−2を返す ◆SUB POUTから呼び出され、指定したUSB-IOポートへ出力する CallHspUSB.dllのUsbOut関数を呼び出し、戻り値は整数型 呼び出し成功時は0を、失敗時は−1または−2を返す ◆SUB PCLOSEから呼び出され、指定したUSB-IOを解放する CallHspUSB.dllのUsbClose関数を呼び出し、戻り値は整数型の0を返す |
解説 MAINプログラムからのUSBCALL.BAS呼び出し例 | |
CALL POPEN LET S=0.2 FOR I=1 TO 10 CALL POUT(0,0) WAIT DELAY S LET N=1 CALL POUT(0,N) WAIT DELAY S DO LET N=N*2 CALL POUT(0,N) WAIT DELAY S LOOP UNTIL N=128 NEXT I CALL PCLOSE END MERGE "USBCALL.BAS" |
USBを初期化する 休止時間を0.2秒にセットする FOR文の開始 Iが10になるまで、最初に現れるNEXTまでを反復する ポート0に0を書き込む 休止する(0.2秒) 変数Nに1を代入する ポート0にNを書き込む(N=1) 休止する DO文の開始 最初に現れるLOOPまでを反復する 変数Nに2をかけたものをNに代入する ポート0にNを書き込む(Nは毎回2倍になる) 休止する LOO文 Nが128になるまで直前のDOへ戻る NEXT文 直前のFORへ戻る USBを閉じる プログラムを終了する サブルーチン"USBCALL.BAS"を動的にリンクする |
(仮称)十進BASICサンプルプログラム ダウンロード(testprogram.lzh:3KB) |
戻る |