ROBOBASIC講座(IN, OUT, BYTEIN, BYTEOUT)
【IN (イン)】
指定ポートからデジタル信号の値を読みこむ。
構文:IN([ポート番号])
例:A = IN(33)
【OUT (アウト)】
ポートにデジタル信号を出力する。
構文:OUT [ポート番号], [出力値]
例:OUT 52, 1
【BYTEIN (バイトイン)】
バイト単位でポートから信号を読み込む。
構文:BYTEIN([バイトポート番号])
例:A = BYTEIN(0)
【BYTEOUT (バイトアウト)】
バイト単位でポートに信号を出力する。
構文:BYTEOUT [バイトポート番号], [出力値]
例:BYTEOUT 0, 255
《解説》
今回のコマンドは、デジタル入出力の為のコマンドになります。MR-C3024のポートを通して信号を入力します。以下の写真にポート番号を示しましたので参考にして下さい。
(※左上のピンが24-31番のポートかな?右が若い番号なのか、左が若い番号なのかどちらかな?)
●デジタルなので、これらの命令で扱う入出力の値は、0または1になります。
●32から39番の8つのポートはAD変換ポートの0から7に対応します。従って、例えばIN(33)で得られる値は、0または1なんですが、AD(1)とした場合、0から255の値が得られます。
●BYTEIN/BYTEOUTでは、ポートをバイトポート番号として扱います。8個分のポートの入出力を一度に行えます。若いポート番号がバイトの下位に対応することになります。
- 0番から7番ポート= バイトポート0番
- 8番から15番ポート= バイトポート1番
- 16番から23番ポート= バイトポート2番
- 24番から31番ポート= バイトポート3番
- 32番から39番ポート= バイトポート4番
●52番ポートがLEDです。ハイテックにあるOverall Template Programにある「robot_voltage」のルーチンに、OUT 52,1 OUT 52,0と書かれており、これを実行すると、LEDが点減します。
MR-C3024のピンとポート番号(左上のピンとポート番号の対応は不明)
ATmega128ピン番号との対応(赤枠の部分のポートとの対応は不明)
----------------
にほんブログ村
| 固定リンク
「ROBOBASIC講座」カテゴリの記事
- IF文の中のIF文(2008.10.31)
- 制限の勧め(2008.10.09)
- ROBOBASIC講座(GYROSET, GYRODIR, GYROSENSE)(2008.09.21)
- ROBOBASIC講座(MOVEPOS、POS)(2008.08.21)
- ROBOBASIC講座(TIPS: FILL文)(2008.07.15)
この記事へのコメントは終了しました。
コメント
推定ですが、MR-C3024に搭載されているATmega128Lのポート順に割り当てているものと思います。
PA0-7:0-7
PB0-7:8-15
PC0-7:16-31
PD0-7:32-39
PE0-7:40-47
PG0-3:48-52
LEDはPG3に繋がってますので52です。
ちなみに左上はバラバラで
SCL/SCAはPD0-1
PWM0-2はPE3-5
LCDはPE2
ERX/ETXはPE0-1
PD,PEとも繋がってないポートもありますのでByteでは読めないと思います。(読んでも思った通りにはならないので後処理が大変です。)
その他、
ブザーはPD5
RXD/TXDはPD2-3
使っていないのはPD4,6,7とPE8,9です。
投稿: avalon | 2008年3月25日 (火) 09時31分
avalonさん
ありがとうございました。
すばらしいです。回路図は見慣れなくてなかなか理解できませんが、でもこれだけ教えて頂ければ完璧です。
ATmega128Lのマニュアルと対応させて勉強してみます。ありがとうございました。
投稿: micono | 2008年3月25日 (火) 10時32分
URLに入れておきますが、旧仕様ですがこの回路図がわかりやすいです。意外とシンプルな構成で素のATmega128Lに若干他の部品が載っているだけです。
余談ですが、この回路図によるとLEDはもう1個あることになっています。
投稿: avalon | 2008年3月25日 (火) 11時37分
度々すみません(笑)
上のは、間違ってました。
PA0-7: 0- 7 S0-7
PB0-7: 8-15 S8-15
PC0-7:16-23 S16-23
Px0-7:24-31
PF0-7:32-39 AD0-7
Py0-7:40-47
PG0-3:48-52 LEDが52
※Px/PyがPD/PEのどちらかは不明。
ですね。ちゃんと調べてないので推定ですが、そんなに外れてはいないと思います。
投稿: avalon | 2008年3月25日 (火) 12時17分
avalonさんありがとうございます。
リンク先のURLも見てみました。
確かにPDとPEが何番のポートになるか解らないですね。IN/OUTで使う訳ではないと思いますが、気になります。ボードの左上のピンの順に割り当ててあるってことも考えられるのかな?ここのピンに何かセンサー刺して、INの値を調べれば解るのかなぁ?今晩やってみよぅ
投稿: micono | 2008年3月25日 (火) 14時06分