戻る
徒然なるままに、必要だと思う部分だけ。
ああ〜でも段々長くなりそうだな。
RCXの仕様 †
CPU | 16MHz 8b |
RAM | 32KB |
ROM | 16KB |
電源 | 単三6本(但し1.0はジャックあり) |
通信 | IRポート |
入力 | 2線ポート×3 |
出力 | 2線ポート×3 |
以下ではRCXコードについて書くよ
変数(Variables) †
変数の個数 †
- 使用(記憶)可能な変数は、32個まで。
- 名前に使える文字は、いわゆるASCII。
ただし、数字が先頭ではいけない。
あと(誰も使わないと思うけど)\tや\nや\vなどの
制御文字は使えないよ。
- 普通の(名前が任意に付けられる)変数の他に、
タイマーが三つ使える。
タイマーの特徴は、
- 0.1秒ごとに値が0.1ずつ増える
- 任意のタイミングで初期化(0に戻す)出来る
- しかし任意の値をタイマーに代入することは出来ない
- タイマーによって判断(条件分岐)をする場合、
有効な値は0.1〜3276.7で、他の値は受け付けられない。
値の範囲 †
- 使用可能な値の範囲は-3276.8〜+3276.7まで。
二進数で書けば、-0b100000000000000/(10)〜+0b11111111111111/(10)
あ、(10)は10進数ね。つまり16b(=2B)の二進数の範囲。
16進数で書けば、0x0000〜0xFFFFまでが記録できて、
0x0000〜0x7FFFまでが正数、0x8000〜0xFFFFまでが負数として扱われる。
(それを十分の一にした物が表示される)
つまり、変数aに1.0を設定することは、
0b000000000001010即ち10を設定している訳デス。
初期値 †
初期値は、全て0に設定される。
可能な演算 †
設定 †
一般的に言われるところの宣言と代入。
ある変数を確保し、それに特定の値を入れる。
代入には定数(直接数値を入れる)、変数(他の変数の名前を指定する)が使える。
追加 †
- 加算。ある変数に、別の数を加算する。
加算された変数の内容は変化するので注意が必要。
つまり、小文字a,b,cを変数名とすると、
やは出来るが、はできない。
をしたければ、,→,→をしなければならない。
また数値の範囲の都合上、3276.0+1.0=-3277.0(=0x7FF8+0x000A=0x8002)とか
(-3276.8)+(-0.1)=+3276.7なんて現象が発生する(多分)。
- 加算に使用できるもの(のbに当たる部分)は、
定数値(3.0など)、(それ自身も含む)変数、カウンタ、センサーの値、IRメッセージの値。
引算 †
乗算 †
- 乗算もやはり、のスタイルしかできない。
もちろん、3276.7×2=-0.2(=0x7FFF+0x7FFF=0x8000+0x8000-2=0x10000-2)
なんて現象が起きる。
除算 †
- 除算も…、のスタイルしかできない。
- ただし、0で割ってはいけない。
正にする †
- 与えられた数を正にする。元の値が正でも負でも構わない。
- (想像だけど)内部的には以下のような動作をしている。
- 0bxxxxxxxxxxxxxxxxの、先頭ビットは1か?(0ならば終わる)
- 全ての桁の数を反転する。(ビット反転。0を1に、1を0に変える)
- そうして出来た数字に1を足す。
- 具体的には-1を正にするときには以下の様になっていると思われる。
- -1→0xFFFF→先頭は1
- 0xFFFFを0x0000に変える
- 0x0000に1を加える→0x0001
負にする †
- 「正にする」と極めてよく似ている。
- 0bxxxxxxxxxxxxxxxxの、先頭ビットは0か?(1ならば終わる)
- 1を引く
- 全ての桁の数を反転する
最新の20件
2008-03-31
2014-07-25
2011-05-19
2010-02-08
2008-10-16
2008-06-06
2008-05-31
2008-04-16
2008-03-24
2008-01-11
2007-12-30
- counter: 1039
- today: 1
- yesterday: 0
- online: 1