上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- -- l スポンサー広告 l top
前回アップしたIchigojsmからカラーアダプタの操作方法について解説します。

■基本仕様
  ・Ichigojamのシリアルポート出力を受けて動作します。
  ・IchigojamのPrint命令で以下のコマンド形式を出力することで操作できます。
  ・通信速度は115.2Kです。
  ・座標系はX=0~63、Y=0~50です。
Ichigojamの32文字x25行を縦横各2分割した座標系です。
  ・使用できる色とカラーコードは以下の通りです。
   黒(0)、青(1)、緑(2)、シアン(3)、赤(4)、マゼンタ(5)、黄(6)、白(7)

■コマンド形式
  ・①ヘッダー1バイト(#80)、②コマンドバイト数、③コマンドコード、④パラメータ(1~5)
  ・Pancakeのバイナリコマンドを意識した構造ですが、以下が違います。
  ・②③④については、#40とのOrを取っています。
   例えばコマンドバイト数が7なら#47となります。その理由は下で述べます。
  ・コマンドバイト数は以下のコマンド説明より長くても大丈夫です。
   例えば初期化コマンドは4バイト命令ですが、長さに7となっていても
後半3バイトが無視されるだけです。
   Ichigojamから各コマンドを同じサブルーチンで呼び出せるようにし、
メモリを節約できます。

「スポンサードリンク」

style="display:block"
data-ad-client="ca-pub-0620260288102702"
data-ad-slot="9773401572"
data-ad-format="auto">





■コマンド
  ・初期化コマンド 
       コマンドコード#60 パラメータ数1(カラーコード)
       機能:全画面のアトリビュートをカラーコードでフィルします。
       例: PRINT chr$(#80);chr$(#44);chr$(#60);chr$(#47);
全エリアを白にします。
  ・PSETコマンド
       コマンドコード#61 パラメータ数3(X,Y,カラーコード)
       機能:指定したドット(4x4Pixel)の色指定します。
       例: PRINT chr$(#80);chr$(#46);chr$(#61);chr$(#45);
               chr$(#48);chr$(#41);
          座標5,8を青にします。
  ・BOXコマンド
       コマンドコード#62 パラメータ数5(X0,Y0,X1,Y1,カラーコード)
       機能:(X0,Y0)-(X1,Y1)の四角枠に色を指定します。
       例: PRINT chr$(#80);chr$(#48);chr$(#62);chr$(#40);chr$(#40);
               chr$(#45);chr$(#48);chr$(#41);
          (0,0)-(5,8)の四角枠を青にします。
  ・BOXFILLコマンド
       コマンドコード#63 パラメータ数5(X0,Y0,X1,Y1,カラーコード)
       機能:(X0,Y0)-(X1,Y1)の四角(内部塗りつぶし)に色を指定します。
       例: PRINT chr$(#80);chr$(#48);chr$(#63);chr$(#40);
               chr$(#40);chr$(#45);chr$(#48);chr$(#41);
          (0,0)-(5,8)の四角を青にします。
  ・LINEコマンド
       コマンドコード#64 パラメータ数5(X0,Y0,X1,Y1,カラーコード)
       機能:(X0,Y0)-(X1,Y1)の線分に沿って色を指定します。
       例: PRINT chr$(#80);chr$(#48);chr$(#64);chr$(#40);
                chr$(#40);chr$(#45);chr$(#48);chr$(#41);
          (0,0)-(5,8)の線分を青にします。

■「②③④については、#40とのOrを取っています。」の理由
   これをやらずともカラーアダプタとIchigojamの通信には問題ないのですが、
   Ichigojamはその通信をPrint文で行っているので、同じ内容を画面にも
   表示しようとします。
   #40とOrを取らないと、データがたまたま改行コード(#0D)のような
   制御コードだったりすると画面が上スクロールします。
   それを避けるためです。
   なお、その表示はされますので、動画のデモではコマンド発行の前に
   毎回LOCATEコマンドで右下にその表示がいくようにしています。
   写真の右下にある英文字がそれです。



動画でデモしているテストプログラムでは、以下の共通サブルーチンで
各コマンドを出すようにしています。

1000 lc22,22:?chr$(#80);chr$(#48);CHR$(u+#40);CHR$(v+#40);chr$(w+#40);chr$(x+#40);chr$(y+#40);chr$(z+#40);:return

   ところで、上の写真のLCDですが、AITENDOの新商品です。後で記事にいたします。

それではまたです。
   
2015.07.11 Sat l ICHIGOJAM l コメント (0) l top

コメント

コメントの投稿












上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。