Q&AコーナーThis is a featured page

Q1: ROBOBASIC の最初の命令で以下の文は何をしているのですか?
     GOTO AUTO
     FILL 255,10000

A1: GOTO AUTO では、
     第一変数に0を代入し、アドレス0x2728 にジャンプるだけです。
     このオブジェクトコードは 0xD0, 0x15, 0x40, 0x10, 0x00, 0xC4, 0x28, 0x27 の8バイトに変換されます。

    FILL 文の方は
     その命令位置から10000バイトを255(0xFF)で埋めます。

    外付けEEPROMに書き込まれるユーザープログラムは、アドレス0x0010から始まるので、
    そこから、上記のコードが書かれると、
    0x0010+8バイト(GOTOAUTO文)+10000バイト(0xFF) = 0x2728 (10024)
    となり、ちょうど0xFFで埋めた次のアドレスに飛ぶようになります。

    なので、この文は次の文と同等です。
   --------------------------------------------------------------
    DIM RR AS BYTE     '一番最初に定義した変数

     RR = 0
     GOTO main

     FILL 255,10000

    main: 'メインルーチン
   --------------------------------------------------------------

    ところが、ここで注意することがあります。
    GOTO AUTO文は 必ず0x2728にジャンプしてしまうのです。
    なのでFILL 文の10000を別の数字にしてしまうと、とんでもないところに飛んでいってしまいます。

==============================================================================

Q2: 「OFFSET」と言うコマンドが追加されているみたいですが、何するコマンドでしょうか?

A2: 零点補正効果を直接指定するコマンドの様です。使い方は、
  
   OFFSET G6A, 99, 100, 103, 100, 150, 50

   の様に使用します。

   「ZERO」コマンドと同じ気がしますが、ZEROコマンドは、内臓EEPROMに記録しますが、こちらはしません。
   SRAMの0x0340~の値(ゼロ点補正値)だけを書き換えます。
   また、ZEROコマンドは+-20までですが、OFFSETコマンドは+-50まで指定できます。
   
   一時的にOFFSETコマンドを使用する場合は、零点が変わってしまうので注意してください。
   電源投入時に内臓EEPROMから設定済みの零点補正値が読み込まれた後は、SRAMの0x340~の値だけを
   参照してパルスを生成しているので、OFFSETコマンドを使用した後は、零点補正値が変わってしまいます。
   使用後に元に戻す必要があります。変数が使えないので直接値で指定しなければなりません。

   ん~何に使いましょう?変数が使えれば何かに使えそうですが、直接値ではな~…
   

===============================================================================
Q3 TENPO 230
   MUSIC ”CDE”
   のTENPO 230 の意味は?
   他に指定出来る?


Posted Anonymously Latest page update: made by Anonymous , Jan 25 2008, 6:04 AM EST (about this update About This Update Posted Anonymously Edited anonymously

5 words added

view changes

- complete history)
More Info: links to this page
Started By Thread Subject Replies Last Post
Anonymous 直しました。 0 Sep 21 2007, 3:09 AM EDT by Anonymous
 
Thread started: Sep 21 2007, 3:09 AM EDT  Watch
全然気がつきませんでした。直しておきました。
Do you find this valuable?    
Keyword tags: None (edit keyword tags)
micono 0x01ではなく 0 Sep 10 2007, 11:03 PM EDT by micono
Thread started: Sep 10 2007, 11:03 PM EDT  Watch
のオブジェクトコードは 0xD0, 0x15, 0x40, 0x01, 0x00, 0xC4, 0x28, 0x27
とありますが、0を代入するので、0xD0, 0x15, 0x40, 0x10が正しいですね。
Do you find this valuable?    
Keyword tags: None (edit keyword tags)

Anonymous  (Get credit for your thread)


Showing 2 of 2 threads for this page