割りと重要な基本


2種類の入出力について

装置を作る上で気を付けなければならないことがあります。
それがこの2種類の入出力です。

入出力には2種類の端子が存在します。
「SIMPLE I/O」「XBus」です。

注意しなければならないのはその性質もですが、
相互運用性がないと言う点でしょう。

これら2種類の端子はそれぞれが異なる端子へ回路を組むことができません。
配線するときは必ず同じ種類の端子に接続しましょう。


SIMPLE I/O

SIMPLE I/O は 0~100 までの連続的な値です。
この端子には何も書かれていません。
簡単なスイッチの ON/OFF や状態を維持する場合によく利用します。
(一度データを出力すると次の出力値に上書きされるまで値を維持する)


XBus

XBus は -999~999 までの単信号です。
この端子には黄色いドットの様なマークが付いています。
連続的に値を送信する事には向きません。
値は連続的ではなく、その命令に対してその瞬間のみ送られます。


動作の違い

この2種類はその動作に大きな違いがあります。
SIMPLE I/O の方が処理は非常に簡単でしょう。

その理由は「SIMPLE I/O」は通信先のマイコン(マイクロコンピュータ)の状態に関わらず、
送受信双方を行う事が可能です。

しかし、「XBus」は同期プロトコルとなり、
送受信を行う場合、通信先のマイコンが通信待機中になっていないとエラーとなります。
エラーが発生した場合はその瞬間に動作が停止してしまう為、装置が動きません。

装置Aから装置BにXBusで値を送信するときは、
同じTU内で装置Bにその値を受信(参照)する処理が必ず必要になります。

正常な動作(XBus)

006.jpg
同じTU内で送信側と受信側でそれぞれ処理が行われている為、
この場合は問題なく動作する。

同期エラー(XBus)

007.jpg
この例の場合は、送信側が送信したタイミング(5TU目)では、
受信側がまだスリープ(停止)状態です。
受信側が受信処理をするのは6TU目となる為、
この場合は同期エラーになります。


マイコンについて

マイコンとはマイクロコンピュータの略です。
このゲームの部品でマイコンに該当するものは、
「MC4000」、「MC4000x」、「MC6000」などです。

マイコンはそれ単独では意味はなく、
コードを記述する事によって初めて動作します。

マイコンの種類に応じて記述できるコードの行数や、
端子の数が変化します。必要に応じて使い分けましょう。


十分なスリープを取る

コードを記述する時には必ずスリープを挟むようにしましょう。
基本的に1TUがこのゲームにおける値が変化する最小単位です。
その為、1TU内でどれだけ値を変化させても、一部の例外を除き、
その最後に設定した値しか出力されません。

さらにCPUは1TUの間に1000回以上動作をします。
つまり動作が完了したらそのTUでの処理を終了させないと、
たった1TUで大量の電力を無駄に消費する事になります。
なのでスリープ命令を使って意図的に、
次に必要な処理までCPUを停止させるようにしましょう。

スリープ命令は、

slp 1

などと入力します。(上記は1TUだけCPUを停止させる)


コードの書き方

マイコンにコードを記述する際には基本的なルールが存在します。
それは、何に、何をするか、です。

この時、「何をするか」が命令となり、「何に」がオペランドとなります。
オペランドと言う言葉に馴染みのない方が多いと思いますが、
命令によって操作する対象、と考えてもらえれば幸いです。

全てのコードは…

命令 オペランド [オペランド2]
(オペランド2は必要な場合のみです)

このように記述します。

命令については命令コードを見て下さい。

  • 最終更新:2017-04-14 16:58:40

このWIKIを編集するにはパスワード入力が必要です

認証パスワード