ジョイスティックのキャリブレーションを行い変数に保持して別のプログラムに渡すためのテスト。
IN1 に10k캩でプルアップしたスイッチを接続。
ANA5,6(OUT1,2)にアナログジョイスティックを330캩の抵抗を通して接続。
スティクの可動範囲のために上下左右に倒したときに値が0,1023にならないので補正する。
ボタンを押して、値を測定。
中央・左・右・上・下の順でボタンを押して値を測定。
C D 中央のときの値 E F G H 左右上下の値
@JS 数値を計算して、-50~50の値に補正するサブルーチン。
@ST 動作テスト
問題点 ジョイスティックの構造から左上・右上・左下・右下の値が均一でない。
10 'JOYSTICK 20 CLS 30 OUT1,-1:OUT2,-1 40 A=IN(1):?"B:"; 50 @BT:B=IN(1):IFA=BGOTO@BT:ELSE?B 60 C=ANA(5):D=ANA(6) 70 ?"C:";C;",";D:GOSUB@WOFF 80 ?"L:";:GSB@WON:E=ANA(5)-C:?E:GSB@WOFF 90 ?"R:";:GSB@WON:F=ANA(5)-C:?F:GSB@WOFF 100 ?"U:";:GSB@WON:G=ANA(6)-D:?G:GSB@WOFF 110 ?"D:";:GSB@WON:H=ANA(6)-D:?H:GSB@WOFF 120 GSB@WON:GOTO@ST 130 @WOFF:IFIN(1)<>BRTNELSEGOTO@WOFF 140 @WON:IFIN(1)=BRTNELSEGOTO@WON 150 @JS:Z=50 160 X=ANA(5)-C 170 IF X<0 THEN X=-50*X/E 180 IF X>0 THEN X=50*X/F 190 Y=ANA(6)-D 200 IF Y<0 THEN Y=-50*Y/G 210 IF Y>0 THEN Y=50*Y/H 220 B=IN(1) 230 RTN 240 @ST:CLS 250 @LP 255 LC32*(X+50)/100,21*(Y+50)/100 256 ?CHR$(0); 260 GSB@JS 265 LC32*(X+50)/100,21*(Y+50)/100 266 ?CHR$(#FA-B); 270 LC0,0:?"(";X;",";Y;"):";B;" " 280 GOTO@LP