|
ORANGE-light リファレンスマニュアル
|
1.プログラム制御関連
代入文
書式 |
|
変数 = 式 |
説明 |
|
変数に式を評価した結果を代入します。 |
例 |
|
c = a + b |
|
cにa + bの値を代入します。 |
|
互換性 |
|
すべてのORANGE-insideで同じ動きになります。 |
const文
書式 |
|
const 定数名 = 定数式 |
説明 |
|
定数式を評価した値を、以降に出現する定数名と置き換えます。定数式には数値、演算子のみが使用できます。 |
例 |
|
const LIMIT = 100 * 2 + 10
print LIMIT
|
|
LIMITを210に置き換えます。
210を表示します。 |
|
互換性 |
|
すべてのORANGE-insideで同じ動きになります。 |
end文
書式 |
|
end |
説明 |
|
プログラムを終了します。 |
例 |
|
if x = 1 then end |
|
xが1のときにプログラムを終了します。 |
|
互換性 |
|
すべてのORANGE-insideで同じ動きになります。 |
goto文
書式 |
|
goto 名札名 |
説明 |
|
指定した名札の次に制御を移します。 |
例 |
|
loop:
x = x + 1
print x
if x <= 10 then goto loop |
|
x <= 10のときにloop:の次に制御を移します。 |
|
互換性 |
|
すべてのORANGE-insideで同じ動きになります。 |
if文
書式 |
|
if 条件式 then 文1
if 条件式 then 文1 else 文2 |
説明 |
|
条件式が真ときは、文1を実行します。
条件式が偽ときは文2(elseがあるとき)または次の文(elseがないとき)に制御を移します。
条件式の真偽判定は次のように決まります。
真: 条件式を評価した結果が0以外のとき
偽: 条件式を評価した結果が0のとき
文1、文2には、複合文(文を「:」で区切ったもの)が使用できます。 |
例 |
|
if x < 10 then print "B"
if x = 10 then print "Y" else print "R"
if y = 0 then print "E": end else print "S" |
|
x < 10のときはBを表示します。
x = 10のときはYを表示し、それ以外のときはRを表示します。
y = 0のときはEを表示し、プログラムを終了します。
それ以外のときはSを表示します。 |
|
互換性 |
|
すべてのORANGE-insideで同じ動きになります。 |
for文
書式 |
|
for 制御変数 = 初期値 to 終値 文 next
for 制御変数 = 初期値 to 終値 step 増分値 文 next |
説明 |
|
制御変数を初期値から終値まで、制御変数を変化させながら、forとnextの間の文を繰り返えし実行します。
制御変数はforとnextの間の文を実行するごとに増分値だけ変化します。
stepで増分値を指定しないときは、増分値は+1となります。
増分値には負数を指定することもできます。
繰り返し終了の判定は、以下の通りです。
・増分値が正のときは、制御変数の値が終値より大きくなったとき
・増分値が負のときは、制御変数の値が終値より小さくなったとき |
例 |
|
for i = 1 to 10
print i
next
for i = 1 to 9 step 2
print i
next
for i = 9 to 1 step -2
print i
next
for x = 2 to 9
for y = 1 to 9
print x;
print " * ";
print y
print " = ";
print x * y
next
next |
|
1から10までの整数を表示します。
1から9までの奇数を表示します。
9から1までの奇数を表示します。
掛け算九九の表を表示します。
|
|
互換性 |
|
すべてのORANGE-insideで同じ動きになります。 |
while文
書式 |
|
while (条件式) 文 wend |
説明 |
|
条件式が真のときは、whileとwendの間の文を繰り返し実行します。条件式が偽のときは、wendの次の文から実行します。
条件式の真偽判定は次のように決まります。
真: 条件式を評価した結果が0以外のとき
偽: 条件式を評価した結果が0のとき |
例 |
|
i = 1
while i <= 10
print i
wend |
|
1から10までの整数を表示します。 |
|
互換性 |
|
すべてのORANGE-insideで同じ動きになります。 |
break文
書式 |
|
break |
説明 |
|
ループ(for~next、while~wend)から無条件に脱出します。 |
例 |
|
for i = 1 to 10
if i = 7 then break
print i;
next
|
|
123456を表示します。 |
|
互換性 |
|
すべてのORANGE-insideで同じ動きになります。 |
continue文
書式 |
|
continue |
説明 |
|
for~nextループ内ではnextまでスキップします。
while~wendループ内ではwendまでスキップします。 |
例 |
|
for i = 1 to 10
if i = 3 then continue
if i = 7 then break
print i;
next
|
|
12456を表示します。 |
|
互換性 |
|
すべてのORANGE-insideで同じ動きになります。 |
def文
書式 |
|
def 関数名(引数) { 文 } |
説明 |
|
関数を定義します。
defの後に関数名を書き、「(」と「)」の間に引数を書きます。引数が複数あるときは、「,」で区切ります。
「{」と「}」の間に文を書きます。文は複数個書けます。return文または「}」に達すると、関数の呼び出し元に戻ります。 |
例 |
|
print min(1, 10)
print min(10, 10)
print min(100, 10)
end
def min(x, y) {
if x < y then return x else return y
} |
|
1を表示します。
10を表示します。
10を表示します。
xとyの小さい方を返す関数を定義します。
|
|
互換性 |
|
すべてのORANGE-insideで同じ動きになります。 |
return文
書式 |
|
return
return 式 |
説明 |
|
呼び出したユーザー関数の次に制御が戻ります。.
returnの後に式が書いた場合は、式を評価した値を呼び出し元に返します。 |
例 |
|
func1(10)
func1(0)
print func2(10)
print func2(0)
end
def func1(x) {
if x = 0 then return
print 100 / x
}
def func2(x) {
if x = 0 then return 0
return 100 / x
}
|
|
10を表示します。
何も表示しません。
10を表示します。
0を表示します。
値を返さない関数です。
値を返す関数です。
|
|
互換性 |
|
すべてのORANGE-insideで同じ動きになります。 |
var文
書式 |
|
var ローカル変数 |
説明 |
|
def文の「{」と「}」の間で有効なローカル変数を定義します。
グローバル変数(通常の変数と同じ名前のローカル変数を参照するときは、ローカル変数が優先されます。 |
例 |
|
x = 1: y = 2: z = 3
print x
print y
print z
print add(100, 200)
print x
print y
print z
end
def add(x, y) {
var z
z = x + y
print x
print y
print z
return z
} |
|
1を表示します。
2を表示します。
3を表示します。
300を表示します。
1を表示します。
2を表示します。
3を表示します。
ローカル変数zを定義します。
ローカル変数zに引数の和を代入します。
100を表示します。
200を表示します。
300を表示します。
300を返します。
|
|
互換性 |
|
すべてのORANGE-insideで同じ動きになります。 |
extern文
書式 |
|
extern 関数名, 外部関数番号 |
説明 |
|
C言語で記述した外部関数を宣言します。ここで宣言した関数は、def文で宣言した関数と同じように使用できます。外部関数番号は0~255が使用できます。パラメーターの数は可変です。 |
例 |
|
extern mean, 1 |
|
外部関数meanを宣言します。
|
|
互換性 |
|
ORANGE-studioでは宣言した関数が呼ばれたときに、コンソールに"ext 外部関数番号, [パラメーターリスト]"を表示します。
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 ORANGE-inside内の外部関数ハンドラーに外部関数番号に対応して記述が必要です。詳細はSDK(発売予定)を参照してください。 |
chain文
書式 |
|
chain 式または文字列 |
説明 |
|
ページ番号またはファイル名で指定したプログラムに制御を移します。制御の移行に失敗した場合はプログラムを終了します。 |
例 |
|
chain 3
chain "circle" |
|
ページ番号3のプログラムに制御を移します。
"circle"という名前のプログラムに制御を移します。
|
|
互換性 |
|
ORANGE-studioでは未実装です。(デバッグ用にchain文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
reset文
書式 |
|
reset |
説明 |
|
システムをリセットします。 |
例 |
|
|
互換性 |
|
ORANGE-studioでは未実装です。(コンソールに"reset"と表示してプログラムを終了します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
|
2.表示関連
print文
書式 |
|
print 式または文字列
print 「;」で区切った複数の式または文字列
print |
説明 |
|
式または文字列をコンソールに表示します。(表示後、改行します。)
式または文字列を「;」で区切って、複数の式または文字列を表示します。(「;」があると改行しないで、
次の式または文字列を表示します。)
print文単独では改行のみを行います。 |
例 |
|
print 10
a = 10: b = 20
print
print a + b
print "abcdef"
print "abc"; "def"
print "a + b = "; a +b
|
|
10を表示します。
改行のみを行います。
30を表示します。
abcdefを表示します。
abcdefを表示します。
a + b = 30を表示します。
|
|
互換性 |
|
ORANGE-studio内ではコンソールウインドウに出力します。
ターゲットボード上では、ORANGE-insideの実装に依存します。(CRTやLCD、シリアルコンソール等に出力されます。) |
LPC1114版 |
|
実装済みです。 シリアルコンソールに出力します。 |
locate文
書式 |
|
locate x座標, y座標 |
説明 |
|
指定した座標にカーソルを移動します。 |
例 |
|
locate 10, 10
|
|
(10, 10)にカーソルを移動します。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(デバッグ用にlocate文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 シリアルコンソールにVT100の該当エスケープシーケンスを出力します。 |
cls文
書式 |
|
cls
cls 式 |
説明 |
|
コンソールをクリアします。
式を指定した場合の振る舞いは、ORANGE-insideの実装に依存します。 |
例 |
|
|
互換性 |
|
ORANGE-studio内ではコンソールウインドウ内の文字を全消去します。
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。
cls 1 : シリアルコンソールにVT100の該当エスケープシーケンスを出力します。
cls 2 : グラフィックス画面(LCD)をクリアします。
clsまたはcls 3 : cls 1とcls 2の両方の処理を行います。 |
chr$関数
書式 |
|
chr$(式) |
説明 |
|
式で指定されたコードに対応する文字を返します。 |
例 |
|
|
互換性 |
|
すべてのORANGE-insideで同じ動きになります。 |
hex$関数
書式 |
|
hex$(式) |
説明 |
|
式で指定された値に対応する16進文字列を返します。 |
例 |
|
|
互換性 |
|
すべてのORANGE-insideで同じ動きになります。 |
|
3.キーボード関連
input文
書式 |
|
input 変数
input プロンプト文字列, 変数 |
説明 |
|
プロンプト文字列(指定しない場合は「?」)を表示し、入力を要求します。入力が完了すると、入力された値をは変数に代入されます。 |
例 |
|
input count
input "count = ? ", count
|
|
「?」をコンソールに表示し、入力ダイアログで入力した数値をcountに代入します。
「count = ? 」をコンソールに表示し、入力ダイアログで入力した数値をcountに代入します。
|
|
互換性 |
|
ORANGE-studio内では以下の動作になります。
プロンプト文字列をコンソールに表示します。(プロンプト文字列を指定しない場合は、コンソールに「?」を表示します。)
入力ダイアログを出します。
入力ダイアログを閉じると、入力された数値を指定した変数に代入し、コンソールにも表示します。
ダイアログを取消ボタンで閉じたり、数値に変換できない場合には0を指定した変数に代入し、コンソールにも表示します。
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。シリアルコンソールから入力します。 |
inkey関数
書式 |
|
inkey() |
説明 |
|
押されたキーのキーコードを返します。押されていないときは-1を返します。 |
例 |
|
keyCode = inkey()
|
|
押されたキーのキーコードをkeyCodeに代入します。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(常に-1を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。シリアルコンソールから入力を返します。 |
ORANGE-ESPer |
|
実装済みです。PS/2キーボードから入力されたキーのキーコードを返します。(config文でシリアル入力に変更可)
キーコードはキートップの刻印に相当するアスキーコードです。('1'が押されたら0x31を返します。)
ファンクションキーなどの特殊キーは、次のコードを返します。
キー |
コード |
↑ |
0x8000 |
↓ |
0x8100 |
→ |
0x8200 |
← |
0x8300 |
F1 |
0x8400 |
F2 |
0x8500 |
F3 |
0x8600 |
F4 |
0x8700 |
F5 |
0x8800 |
F6 |
0x8900 |
F7 |
0x8a00 |
F8 |
0x8b00 |
F9 |
0x8c00 |
F10 |
0x8d00 |
F11 |
9x8e00 |
F12 |
0x8f00 |
Delete |
0x9000 |
End |
0x9100 |
Page Up |
0x9200 |
Page Down |
0x9300 |
Home |
0x9400 |
Insert |
0x9500 |
☆指定したキーが押されているかどうかを高速に判断するときは、button関数をご利用ください。 |
|
4.タイマー関連
clt文
書式 |
|
clt |
説明 |
|
タイマーをクリアします。クリアした瞬間はtickms()の返す値が0になります。 |
例 |
|
clt
pause 100
print tickms()
|
|
タイマーをクリアします。
100ms待ちます。
100に近い値を表示します。 |
|
互換性 |
|
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
tickms関数
書式 |
|
tickms() |
説明 |
|
clt文を実行したときからの時間をミリ秒単位で返します。 |
例 |
|
clt
pause 100
print tickms()
|
|
タイマーをクリアします。
100ms待ちます。
100に近い値を表示します。 |
|
互換性 |
|
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
pause文
書式 |
|
pause 式 |
説明 |
|
式で指定したミリ秒単位の時間だけ何もしないで待ちます。 |
例 |
|
clt
pause 100
print tickms()
|
|
タイマーをクリアします。
100ms待ちます。
100に近い値を表示します。 |
|
互換性 |
|
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
|
5.メモリー配列関連
mpoke文
書式 |
|
mpoke 式1, 式2 |
説明 |
|
式1で指定した番地(バイト)に式2で指定した値(バイト)を書き込みます。 |
例 |
|
mpoke 10, 100
|
|
メモリー配列の10バイト目の位置に100を書き込みます。 |
|
互換性 |
|
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
mpokew文
書式 |
|
mpokew 式1, 式2 |
説明 |
|
式1で指定した番地(ワード)に式2で指定した値(ワード)を書き込みます(ビッグエンディアン)。 |
例 |
|
mpokew 5, 1000
|
|
メモリー配列の5ワード目の位置に1000を書き込みます。 |
|
互換性 |
|
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
mptr文
書式 |
|
mptr 式 |
説明 |
|
メモリーポインターに式で指定した値を設定します。メモリーポインターはmdata文、mdataw文、mstr文で参照されます。 |
例 |
|
mptr 16
|
|
メモリーポインターに16を設定します。 |
|
互換性 |
|
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
mdata文
書式 |
|
mdata 整数1, 整数2, 整数3...,整数n |
説明 |
|
メモリポインターが指し示す番地(バイト)から順に、整数1~整数nの値をバイト単位でメモリー配列に書き込みます。書き込んだ数だけメモリーポインターの値が増加します。 |
例 |
|
mptr 0x0010
mdata 1, 2, 3, 4, 5
mdata 6, 7, 8, 9, 10
|
|
メモリーポインターに0x0010(バイト)を設定します。
0x0010番地(バイト)から順に1, 2, 3, 4, 5を書き込みます。
0x0015番地(バイト)から順に6, 7, 8, 9, 10を書き込みます。
|
|
互換性 |
|
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
mdataw文
書式 |
|
mdataw 整数1, 整数2, 整数3, ..., 整数n |
説明 |
|
メモリーポインターが指し示す番地(ワード)から順に、整数1~式nの値をワード単位でメモリー配列に書き込みます(ビッグエンディアン)。書き込んだ数だけメモリーポインターの値が増加します。
mptr文は、バイト単位でカウントした番地を設定しますので、mdataw文で使用するときは、2倍した値を設定します。 |
例 |
|
mptr 0x0010 * 2
mdataw 1, 2, 3, 4, 5
mdataw 6, 7, 8, 9, 10
|
|
メモリーポインターに0x0010(ワード)を設定します。
0x0010番地(ワード)から順に1, 2, 3, 4, 5を書き込みます。
0x0015番地(ワード)から順に6, 7, 8, 9, 10を書き込みます。
|
|
互換性 |
|
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
ー
mstr文
書式 |
|
mstr 文字列 |
説明 |
|
メモリーポインターが指し示す番地から順に指定した文字列を書き込みます。書込み後は、書き込んだ文字数だけメモリーポインターの値が増加します。 |
例 |
|
mptr 0x0010
mstr "ABC"
mstr "DE" |
|
メモリーポインターに0x0010(バイト)を設定します。
0x0010番地から”ABC"を書き込みます。
(0x0010番地に0x41、0x0011番地に0x43、0x0012番地に0x43)
0x0013番地から”DE"を書き込みます。
(0x0013番地に0x44、0x0014番地に0x45) |
|
互換性 |
|
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
mpeek関数
書式 |
|
mpeek(式) |
説明 |
|
式で指定した番地(バイト)の内容を返します。 |
例 |
|
mptr 0x0010
mstr "ABC"
print mpeek(0x0010) |
|
メモリーポインターに0x0010(バイト)を設定します。
0x0010番地から”ABC"を書き込みます。
(0x0010番地に0x41、0x0011番地に0x43、0x0012番地に0x43)
65(=0x41)を表示します。 |
|
互換性 |
|
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
mpeekw関数
書式 |
|
mpeek(式) |
説明 |
|
式で指定した番地(ワード)の内容を返します(ビッグエンディアン)。 |
例 |
|
mpokew 5, 1000
print mpeekw(5) |
|
メモリー配列の5ワード目の位置に1000を書き込みます。
1000を表示します。 |
|
互換性 |
|
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
getmptr関数
書式 |
|
getmptr() |
説明 |
|
現在のメモリーポインターの値を取得します。 |
例 |
|
mptr 0x0000
mstr "ABC"
print getmptr() |
|
メモリーポインターに0x0000(バイト)を設定します。
0x0000番地から”ABC"を書き込みます。
(0x0000番地に0x41、0x0001番地に0x43、0x0002番地に0x43)
3を表示します。 |
|
互換性 |
|
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
|
6.I/O制御関連
out文
書式 |
|
out 式1, 式2 |
説明 |
|
式1で指定したポート番号に対して、式2で指定した出力指示を実行します。
出力指示の指定は以下の通りです。
0:Low
1:High |
例 |
|
|
互換性 |
|
ORANGE-studioではデジタル出力パネルの状態を更新します。
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 ポート番号とピン番号の対応は以下の通りです。
ポート番号 |
ピン番号 |
1 |
9 |
2 |
10 |
3 |
11 |
4 |
12 |
5 |
18 |
6 |
17 |
7 |
14 |
8 |
3 |
9 |
4 |
10 |
5 |
11 |
6 |
12 |
1 |
13 |
2 |
14 |
13 |
15 |
28 |
16 |
27 |
17 |
26 |
18 |
25 |
19 |
24 |
20 |
23 |
21 |
16 |
22 |
15 |
|
sftout文
書式 |
|
out 式1, 式2, 式3, 式4 |
説明 |
|
式1で指定しデータポート番号に対して、式4で指定したデータを1ビットずつ出力します。
式3が1のときは、最下位ビット(LSB)からデータを出力し、1以外のときは最上位ビット(MSB)から出力します。
1ビット分のデータを出力する毎に、式2で指定したクロックポートにパルス(High→Low)を出力します。これを8ビット分繰り返します。
|
例 |
|
sftout 1, 3, 0, 0x08
|
|
ポート1に0x08をMSBから順に出力します。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(デバッグ用にsftout文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 式1および式2で使用するポート番号とピン番号の対応は以下の通りです。
ポート番号 |
ピン番号 |
1 |
9 |
2 |
10 |
3 |
11 |
4 |
12 |
5 |
18 |
6 |
17 |
7 |
14 |
8 |
3 |
9 |
4 |
10 |
5 |
11 |
6 |
12 |
1 |
13 |
2 |
14 |
13 |
15 |
28 |
16 |
27 |
17 |
26 |
18 |
25 |
19 |
24 |
20 |
23 |
21 |
16 |
22 |
15 |
|
pwm文
書式 |
|
pwm 式1, 式2, 式3 |
説明 |
|
式1で指定したポート番号に対して、式2(周波数)、式3(デューティ比)で指定した矩形波を出力します。
周波数の単位はHzです。デューティ比は0~1000で指定します。1を指定すると0.1%、1000を指定すると100%になります。
デューティ比に0を指定するとPWM出力を停止します。 |
例 |
|
pwm 2, 100, 500
|
|
ポート2に周波数100Hz、デューティ比50%の矩形波を出力します。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(デバッグ用にpwm文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 ポート番号とピン番号の対応は以下の通りです。
ポート番号 |
ピン番号 |
2 |
10 |
3 |
11 |
4 |
12 |
5 |
18 |
|
in関数
書式 |
|
in(式) |
説明 |
|
式で指定したポート番号の状態を返します。
指定したポートがHighのときに1、Lowのときに0が返ります。 |
例 |
|
print in(1) |
|
ポート1の状態を表示します。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 ポート番号とピン番号(ボタン)の対応は以下の通りです。
ポート番号 |
ピン番号 |
ボタン |
1 |
3 |
|
2 |
4 |
|
3 |
5 |
SELECT |
4 |
6 |
|
5 |
9 |
UP |
6 |
10 |
RIGHT |
7 |
11 |
LEFT |
8 |
12 |
DOWN |
9 |
13 |
START |
10 |
18 |
B |
11 |
17 |
A |
12 |
1 |
|
13 |
2 |
|
14 |
14 |
|
15 |
28 |
|
16 |
27 |
|
17 |
26 |
|
18 |
25 |
|
19 |
24 |
|
20 |
23 |
|
21 |
16 |
|
22 |
15 |
|
|
adc関数
書式 |
|
adc(式) |
説明 |
|
式で指定したポートの電圧に応じて値を返します。
電圧と値の関係はターゲットボード上のORANGE-insideの実装に依存します。 |
例 |
|
print adc(1) |
|
ポート1の電圧を表示します。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 0~1023の値を返します。ポート番号とピン番号の対応は以下の通りです。
ポート番号 |
ピン番号 |
2 |
4 |
5 |
9 |
6 |
10 |
7 |
11 |
8 |
12 |
9 |
13 |
|
i2ci文
書式 |
|
i2ci 式1, 式2 |
説明 |
|
式1で指定したチャネルのI2Cバスを式2で指定したクロックレートで初期化します。
チャネルは1から始まる番号です。
クロックレートの単位はkHzです。 |
例 |
|
i2ci 1, 400 |
|
I2C1バスを400kHzで初期化します。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(デバッグ用にi2ci文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
i2cw関数
書式 |
|
i2cw(式1, 式2, 式3, 式4, 式5) |
説明 |
|
式1で指定したチャネルのI2Cバスにデータを書き込みます。
式2でスレーブアドレスを7ビットで指定します。(R/Wフラグは0が付加されます。)
式3で書き込むデータが格納されているメモリー配列の番地(バイト)を指定します。
式4で書き込むデータの長さ(バイト数)を指定します。
式5でストップ指示を指定します。ストップ指示は1でストップコンディションを送出し、0でリピーテッドスタートコンディションを送出します。
成功すると0を返します。失敗すると以下のエラーコードが返ります。
-1 : 他のデバイスに使用されている
-2 : デバイスが見つからない |
例 |
|
buf = getmptr()
mdata 0x00, 0x01
rc = i2cw(1, 0x50, buf, 2, 1) |
|
スレーブアドレス0x50に0x00, 0x01を送信します。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 式1の値は無視されます。(使用できるI2Cバスは1チャンネルのみです。) |
i2cr関数
書式 |
|
i2cr(式1, 式2, 式3, 式4, 式5) |
説明 |
|
式1で指定したチャネルのI2Cバスからデータを読み込みます。
式2でスレーブアドレスを7ビットで指定します。(R/Wフラグは1が付加されます。)
式3で読み込んだデータを格納するメモリー配列の番地(バイト)を指定します。
式4で読み込むデータの長さ(バイト数)を指定します。
式5でストップ指示を指定します。ストップ指示は1でストップコンディションを送出し、0でリピーテッドスタートコンディションを送出します。
成功すると0を返します。失敗すると以下のエラーコードが返ります。
-1 : 他のデバイスに使用されている
-2 : デバイスが見つからない |
|
|
|
例 |
|
buf = getmptr()
rc = i2cr(1, 0x68, buf, 7, 1) |
|
スレーブアドレス0x68から7バイト受信します。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 式1の値は無視されます。(使用できるI2Cバスは1チャンネルのみです。) |
button関数
書式 |
|
button(式) |
説明 |
|
指定たボタン(キー)が押されていれば1、そうでなければ0を返します。
|
例 |
|
isF1 = button(0x8400) |
|
F1キーが押されているかどうかを返します。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
未実装です。 (常に0を返します。)
in関数を使用してください。 |
ORANGE-ESPer |
|
実装済みです。指定たキーが押されていれば1、そうでなければ0を返します。キーコードはinkey関数を参照してください。 |
uart文
書式 |
|
uart 式1, 文字列, 式2 |
説明 |
|
式1で指定したチャネルのシリアルポーとを文字列で指定した通信速度(bps)で初期化します。
通信速度以外のパラメーターは式2で指定します。
式2で使用する値は以下のconst文で定義したものを使用してください。
SERIAL_の後に続く文字は、順にデータ長、パリティ、ストップビット長を意味します。
const SERIAL_5N1 = 0 // パリティなし
const SERIAL_6N1 = 1
const SERIAL_7N1 = 2
const SERIAL_8N1 = 3
const SERIAL_5N2 = 4
const SERIAL_6N2 = 5
const SERIAL_7N2 = 6
const SERIAL_8N2 = 7
const SERIAL_5E1 = 8 // 偶数パリティ
const SERIAL_6E1 = 9
const SERIAL_7E1 = 10
const SERIAL_8E1 = 11
const SERIAL_5E2 = 12
const SERIAL_6E2 = 13
const SERIAL_7E2 = 14
const SERIAL_8E2 = 15
const SERIAL_5O1 = 16 // 奇数パリティ
const SERIAL_6O1 = 17
const SERIAL_7O1 = 18
const SERIAL_8O1 = 19
const SERIAL_5O2 = 20
const SERIAL_6O2 = 21
const SERIAL_7O2 = 22
const SERIAL_8O2 = 23
|
例 |
|
const SERIAL_8E1= 11
uart 1, "1953", SERIAL_8E1 |
|
UART1を1953bps、8ビット、偶数パリティ、1ストップビットで初期化します。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(デバッグ用にuart文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
未実装です。 |
ORANGE-ESPer |
|
実装済みです。
UART0は、micro USBです。
UART1は、IO端子の2番ピン(RXD)、3番ピン(TXD)です。 |
|
7.グラフィックス関連
rgb関数
書式 |
|
rgb(式1, 式2, 式3) |
説明 |
|
式1(RED値)、式2(GREEN値)、式3(BLUE値)で指定した16ビットのカラー値を返します。
RED値、GREEN値、BLUE値には、それぞれ0~255の値を指定します。 |
例 |
|
line 0, 0 , 100, 100, rgb(0, 255, 0) |
|
緑色の直線を描きます。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
pset文
書式 |
|
pset 式1, 式2, 式3 |
説明 |
|
式1(x座標)、式2(y座標)で指定した位置に式3(16ビットのカラー値)で指定した点を描きます。 |
例 |
|
pset 100, 100, rgb(0, 255, 0) |
|
座標(100, 100)に緑色の点を描きます。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(デバッグ用にpset文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
line文
書式 |
|
line 式1, 式2, 式3, 式4, 式5 |
説明 |
|
式1(x座標)、式2(y座標)で指定した始点と式3(x座標)、式4(y座標)で指定した終点を結ぶ直線を式5(16ビットのカラー値)で指定した直線を描きます。 |
例 |
|
line 0, 0, 100, 100, rgb(0, 255, 0) |
|
始点(0, 0)と終点(100, 100)を結ぶ直線を描きます。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(デバッグ用にline文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
rect文
書式 |
|
rect 式1, 式2, 式3, 式4, 式5, 式6 |
説明 |
|
式1(始点のx座標)、式2(始点のy座標)、式3(幅)、式4(高さ)、式5(16ビットのカラー値)で指定する長方形を描きます。
式6の値が0のときは長方形の枠のみを描き、1のときは長方形の内部を塗りつぶします。 |
例 |
|
rect 0, 0, 100, 100, rgb(0, 255, 0), 1 |
|
始点(0, 0)、幅100、高さ100の長方形を描きます。
内部は塗りつぶします。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(デバッグ用にrect文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
gprint文
書式 |
|
gprint 式1, 式2, 式3, 式4, 式5
gprint 式1, 式2, 文字列, 式4, 式5 |
説明 |
|
式1(x座標)、式2(y座標)で指定した始点から式3の値を文字列として描きます。
式3のところに文字列を指定すれば、その文字列を描きます。
式4で文字列の前景色を指定します。
式5で文字列の背景色を指定します。背景色は省略可能で、省略すると黒になります。 |
例 |
|
gprint 120, 100, x, rgb(0, 255, 0), 0
gprint 120, 100, "TEST", rgb(0, 255, 0), 0
|
|
(120, 100)から変数xの値を表示します。
(120, 100)から文字列TESTを表示します。
|
|
互換性 |
|
ORANGE-studioでは未実装です。(デバッグ用にgprint文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 半角文字は内蔵の8x8フォントで表示します。全角文字は表示できません。 |
gtitle文
書式 |
|
gtitle 式1, 式2, 文字列, 式4, 式5 |
説明 |
|
式1(x座標)、式2(y座標)で指定した始点から文字列を表示します。半角文字は8x16フォントで、全角文字は16x16フォントで表示します。
式4で文字列の前景色を指定します。
式5で文字列の背景色を指定します。背景色は省略可能で、省略すると黒になります。 |
例 |
|
gtilte 10, 10, "日本語表示", rgb(0, 255, 0), 0
|
|
(10, 10)から文字列TESTを表示します。
|
|
互換性 |
|
ORANGE-studioでは未実装です。(デバッグ用にgtitle文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。コンパイル時にはORANGE-pro.jarと同じ場所にフォントファイル(Font16x16.bdfとFont8x16.bdf)を格納しておいてください。
コンパイル結果にフォントパターンが含まれますので、実機側のメモリーを圧迫します。 |
|
8.スプライト関連
sprnew関数
書式 |
|
sprnew(式1, 式2, 式3, 式4, 式5, 式6, 式7, 式8) |
説明 |
|
★1ピクセルごとに16ビットのカラー値で指定したスプライトを作成する場合
式1でスプライト番号(0~)を指定します。
式2~式5で、それぞれ、スプライトを表現する矩形の始点x座標、矩形の始点y座標、矩形の幅、矩形の高さを指定します。
式6で矩形のイメージが格納されているメモリー配列の番地(バイト)を指定します。イメージの1ピクセルは16ビットのカラー値で指定します。
式7および式8の両方に0を指定します。.
スプライトの作成に成功すると、スプライト番号が返ります。失敗すると-1が返ります。
★前景色と背景色を指定したスプライトを作成する場合
式1でスプライト番号(0~)を指定します。
式2~式5で、それぞれ、スプライトを表現する矩形の始点x座標、矩形の始点y座標、矩形の幅、矩形の高さを指定します。矩形の幅は8の倍数である必要があります。
式6で矩形のイメージが格納されているメモリー配列の番地(バイト)を指定します。
イメージの1ピクセルは1ビットで指定します。ビットが立っている部分が前景色、そうでない部分が背景色になります。
式7で前景色を指定します。
式8で背景色を指定します。
スプライトの作成に成功すると、スプライト番号が返ります。失敗すると-1が返ります。 |
例 |
|
IMAGE0 = getmptr()
mdataw 2016, 2016, 2016
mdataw 2016, 2016, 2016
sprite0 = sprnew(0, X, Y, 3, 2, IMAGE0, 0, 0)
sprdsp sprite0, 1 |
|
★1ピクセルごとに16ビットのカラー値で指定したスプライトを作成する場合
1ライン目(3ピクセル)
2ライン目(3ピクセル) |
IMAGE1 = getmptr()
mdata 0xff, 0xff, 0xff
mdata 0xff, 0xff, 0xff
mdata 0xff, 0xff, 0xff
sprite1 = sprnew(1, X, Y + 10, 24, 3, IMAGE1, rgb(255, 0, 0), 0)
sprdsp sprite1, 1 |
|
★前景色と背景色を指定したスプライトを作成する場合
1ライン目(24ピクセル)
2ライン目(24ピクセル)
3ライン目(24ピクセル) |
|
互換性 |
|
ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 スプライト番号は0~9まで使用できます。 |
sprdsp文
書式 |
|
sprdsp 式1, 式2 |
説明 |
|
式1で指定したスプライト番号のスプライトをを可視/不可視にします。
式2で1を指定すると可視、0を指定すると不可視になります。 |
例 |
|
sprdsp 2, 0
sprdsp 3, 1
|
|
スプライト番号2のスプライトを不可視にします。
スプライト番号3のスプライトを可視にします。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(デバッグ用にsprdsp文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
sprmov文
書式 |
|
sprmov 式1, 式2, 式3 |
説明 |
|
式1で指定したスプライト番号のスプライトを移動します。
式2でx座標、式3でY座標を指定します。 |
例 |
|
sprmov 2, 100, 100 |
|
スプライト番号2のスプライトを(100, 100)に移動します。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(デバッグ用にsprmov文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
sprget文
書式 |
|
sprget 式1, 式2 |
説明 |
|
式1で指定したスプライト番号のスプライトの情報を読み出し、式2で指定したメモリー配列の番地の先頭から以下のように10バイト分格納します。
また、格納する番地は偶数である必要があります。(読出し後、mpeekw関数で情報を取得するため)
指定した番地(ワード) : 矩形の始点のx座標
指定した番地(ワード) + 1 : 矩形の始点の y座標
指定した番地(ワード) + 2 : 矩形の幅
指定した番地(ワード) + 3 : 矩形の高さ
指定した番地(ワード) + 4 : 可視(0x0001)/不可視(0x0000) |
例 |
|
work = getmptr()
if work % 2 = 1 then work = work + 1
sprget 1, work
address = work / 2
print mpeekw(address)
print mpeekw(address + 1)
print mpeekw(address + 2)
print mpeekw(address + 3)
print mpeekw(address + 4) |
|
現在のメモリーポインターを取得します。
奇数番地のときは偶数番地に補正します。
スプライト番号1の情報を取得します。
ワード番地に変換します。
矩形の始点のx座標を表示します。
矩形の始点のy座標を表示します。
スプライトの幅を表示します。
スプライトの高さを表示します。
スプライトの可視/不可視情報を表示します。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(デバッグ用にpget文の引数をコンソールに表示します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
sprhit関数
書式 |
|
sprhit(式1, 式2) |
説明 |
|
式1で指定したスプライト番号の矩形と式2で指定したスプライト番号の矩形が重なっているときは1を返します。
二つ矩形に重なり部分がないときは0を返します。 |
例 |
|
if sprhit(1, 2) then sprmov 1, 0, 0 |
|
スプライト1スプライト2が重なっているときはスプライト1を(0,0)に移動します。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
|
9.ファイルI/O関連
fopen関数
書式 |
|
fopen(式1, 式2) |
説明 |
|
ファイルをオープンします。
式1でメモリー配列上の完全パス名を指定します。
式2でモードを指定します。(0:リードオンリー、1:上書き、2:追加)
成功するとファイル番号(0~3)が返ります。
存在しないファイルをリードオンリーでオープンしたり、同時にオープンできるファイル数(4個)を超えるとエラーとなり、-1が返ります。 |
例 |
|
mstruct work {
PATH ds "f:/config.sys"
}
file = fopen(work.PATH, 0)
|
|
パス名をメモリー配列に割り当てます。
指定したファイルをリードオンリーでオープンします。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
未実装です。 |
ORANGE-ESPer |
|
実装済みです。 |
fclose関数
書式 |
|
fclose(式) |
説明 |
|
ファイルをクローズします。
式1でファイル番号を指定します。
成功すると0が返ります。 |
例 |
|
fclose(file)
|
|
ファイルをクローズします。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
未実装です。 |
ORANGE-ESPer |
|
実装済みです。 |
fread関数
書式 |
|
fread(式1, 式2, 式3) |
説明 |
|
ファイルからデータを読み込みます。
式1でファイル番号を指定します。
式2で読み込むデータの格納先(メモリー配列のアドレス)を指定します。
式3で読み込むデータの長さ(バイト数)を指定します。
読み込んだデータの長さ(バイト数)が返ります。 |
例 |
|
mstruct work {
PATH ds "f:/config.sys"
BUF rb 256
}
file = fopen(work.PATH, 0)
size = fread(file, work.BUF, 256)
fclose(file)
|
|
指定したファイルをリードオンリーでオープンします。
ファイルからデータを読み込みます。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
未実装です。 |
ORANGE-ESPer |
|
実装済みです。 |
fwrite関数
書式 |
|
fwrite(式1, 式2, 式3) |
説明 |
|
ファイルにデータを書き込みます。
式1でファイル番号を指定します。
式2で書き込むデータの格納先(メモリー配列のアドレス)を指定します。
式3で書き込むデータの長さ(バイト数)を指定します。
書き込んだデータの長さ(バイト数)が返ります。 |
例 |
|
mstruct work {
PATH ds "f:/config.sys"
TEST ds "TEST"
CRLF ds "\r\n"
}
file = fopen(work.PATH, 1)
fwrite(file, work.TEST, 4)
fwrite(file, work.CRLF, 2)
fclose(file)
|
|
指定したファイル上書きモードでオープンします。
ファイルにデータを書込みます。 |
|
互換性 |
|
ORANGE-studioでは未実装です。(常に0を返します。)
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
未実装です。 |
ORANGE-ESPer |
|
実装済みです。 |
|
10.その他
beep文
書式 |
|
beep 式1, 式2
beep 式1
beep |
説明 |
|
式1で指定した音階を式2で指定した時間だけビープ音を鳴らします。
音階は21でA音440Hzです。1増やすと半音上がり、減らすと半音下がります。
時間の単位はmsです。
式1と式2は省略できます。省略したときの値はそれぞれ、21と200です。 |
例 |
|
beep
beep 33, 1000 |
|
音階21(A音440Hz)で200msのビープ音を鳴らします。
音階33(A音880Hz)で1000msのビープ音を鳴らします。 |
|
互換性 |
|
ORANGE-studioでは式1、式2は無視され、OSに設定されたビープ音を出します。
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。25番ピンとGNDの間に圧電スピーカーを接続します。 |
rnd関数
書式 |
|
rnd(式) |
説明 |
|
0~式 - 1 までの乱数を返します。 |
例 |
|
print rnd(6) + 1 |
|
1~6のいずれかの値を表示します。 |
|
互換性 |
|
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。 |
debug関数
書式 |
|
debug(式) |
説明 |
|
式の値を表示し、その値を返します。 |
例 |
|
|
互換性 |
|
ORANGE-studioでは「L行番号 = 式の値」を表示します。
ターゲットボード上では、ORANGE-insideの実装に依存します。 |
LPC1114版 |
|
実装済みです。「DEBUG = 式の値」を表示します。 |
|
|
|
|