Page 138 - The Unofficial Guide to Lego Mindstorms Robots
P. 138

127


          After MOTOR_SET runs, the stack is empty. The first thing you need to push on the stack is power; the last thing is index .
          In your code, it comes out in the same order:

              7 2 0 MOTOR_SET

          In this case, 7 is power, 2 is mode, and 0 is index.

          The very first pbFORTH word initializes the RCX:

          RCX_INIT ( -- )
          This word starts the input and output handlers, system timers, and performs other important initializations. After you load
          pbFORTH on the RCX, call this word before you try to do anything with the inputs, outputs, buttons, or other RCX services.

          O utput Control

          O ne word is devoted to controlling the RCX's outputs:

          M OTOR_SET (power mode index  -- )
          This word turns an output on or off. It pops three parame ters off the stack. The power parameter should be 1 to 7, where 7 is
          fu ll power. The mode parameter indicates whether the  output should be turned on going forward (1) or in reverse (2), or if it
          should be turned off in "brake" (3) or "float" (4) modes. In brake mode , the motor shaft resists turning; in float mode, it turns
          fr eely. The top parameter,  index, should be 0, 1, or 2, representing ou tput A, B, or C, respectively.

          F or example, to turn on output 3 in full reverse, do this:

              7 2 2 MOTOR_SET

          R emember that constants can make this kind of code a lot nicer. For example:

              7 CONSTANT OUT_FULL
                  ok
              2 CONSTANT FORWARD 4 CONSTANT FLOAT
                  ok
              2 CONSTANT OUT_3
                  ok
              OUT_FULL FORWARD OUT_3 MOTOR_SET
                  ok
              OUT_FULL FLOAT OUT_3 MOTOR_SET
                  Ok

          Fr ont Panel Buttons

          pbFORTH provides two words that allow you to examine which front panels are pressed.
   133   134   135   136   137   138   139   140   141   142   143