Ichigojamとの接続例
(分圧回路でプログラミング)
CN3(IN2,VCC,GND)端子を、IchigoJamのIN2,VCC,GND端子にそれぞれ接続します。
MODE(SW21)スイッチは[Jam]側にします。
※[RESET]ボタン、[ON]ボタン、およびLCDモジュールはIchigoJamでは使用しません。
このサンプルプログラムは、サブルーチンコールした時に押されていたキーに応じて、次の変数に値を返します
変数 A :押していたテンキーのアナログ値
変数 K :変数Aの範囲に応じた、0~20,99の値
10 GSB@KEYPAD_SCAN: ?A,K: WAIT30: CONT
10000 @KEYPAD_SCAN
10010 A=ANA(2)
10020 IF A>1013 K=99:RTN
10030 IF A<300 K=A/30 ELSE K=A/77+6
10040 IF A>897 K=A/39-5
10050 RTN
押されたキー | 変数A(アナログ値) | 変数K |
---|---|---|
BS | 0~2 | 0 |
÷ | 30~35 | 1 |
× | 60~69 | 2 |
- | 103~119 | 3 |
+ | 160~163 | 5 |
+/- | 215~220 | 7 |
3 | 285~292 | 9 |
6 | 351~361 | 10 |
9 | 434~446 | 11 |
8 | 509~523 | 12 |
5 | 589~605 | 13 |
2 | 657~676 | 14 |
. | 729~751 | 15 |
0 | 791~819 | 16 |
1 | 850~880 | 17 |
4 | 897~934 | 18 |
7 | 940~974 | 19 |
ENTER | 983~1013 | 20 |
non | 1014~1023 | 99 |
a.電卓キー入力編
Ichigojamプログラムにて、逆ポーランド記法の計算を実行します。
カーソルが点滅している個所がキーから式を入力する箇所です。
“>”の欄に、直前に入力した式を表示します。
10 ‘HONDA CALCULATOR V1.2 2021/9/4 TEAM IchigoJam HOKKAIDO
20 VIDEO1:CLS:CLV:VIDEO3:LC0,0,1:V=#9C0
30 IF ANA(2)>1013 M=1
40 @MAIN
50 CLS
60 ?STR$(#C04,16)
70 ?”T:”;T
80 ?”Z:”;Z
90 ?”Y:”;Y
100 ?”—–“
110 ?”X:”;X
120 ?”—–“
130 ?:?:?”>”;STR&(V):?CHR$(30,30,30,30)
140 IF M GSB@KEYPAD ELSE GSB@KEYBOARD
150 IF LEN(S) L=LEN(S)-1 ELSE S=V:IF LEN(S) CONT ELSE GOTO@MAIN
160 E=0:COPY V,S,16
170 FOR I=0 TO L
180 U=ASC(S+I)
190 IF U>47 AND U<58 E=E*10+U-48:F=1:IF I!=L GOTO@NEXT
200 IF F GSB@PUSH
210 IF U=42 Y=Y*X:GSB@POP
220 IF U=43 Y=Y+X:GSB@POP
230 IF U=45 Y=Y-X:GSB@POP
240 IF U=47 Y=Y/X:GSB@POP
250 IF U=64 X=-X
260 @NEXT:NEXT
270 GOTO@MAIN
1000 @PUSH
1010 T=Z:Z=Y:Y=X:X=E:E=0:F=0:RTN
2000 @POP
2010 X=Y:Y=Z:Z=T:T=0:RTN
3000 @KEYBOARD
3010 POKE#1003,1,34:INPUT S:RTN
4000 @KEYPAD
4010 S=#900+POS()
4020 LET[0],8,47,42,45,-1,43,-1,64,-1,51,54,57,56,53,50,46,48,49,52,55,0
4030 @LOOP:A=ANA(2):IF A>1013 CONT
4040 IF A<300 K=A/30 ELSE K=A/77+6
4050 IF A>897 K=A/39-5
4060 IF ANA(2)<1023 CONT
4070 ?CHR$([K]);
4080 IF [K] GOTO@LOOP
4090 RTN
※100行目と120行目のキャラクタ文字は、Alt+Shift+Hを5回押して入力する