[
CODE]' {$STAMP BS2}
' {$PBASIC 2.5}UDPin CON 8LRPIn CON 9LR VAR WordUD VAR WordDO HIGH LRPin PAUSE 2 RCTIME LRPin, 1, LR HIGH UDPin PAUSE 2 RCTIME UDPin, 1, UD DEBUG HOME, "UD = ", DEC UD, ", LR = ", DEC LR, CLREOL PAUSE 50 LOOP[/CODE]

PHP Code:
' {$STAMP BS2}' {$PBASIC 2.5}UDPin   CON   8LRPIn   CON   9LR      VAR   WordUD      VAR   WordDO  HIGH LRPin  PAUSE 2  RCTIME LRPin1LR  HIGH UDPin  PAUSE 2  RCTIME UDPin1UD  DEBUG HOME"UD = "DEC UD", LR = "DEC LRCLREOL  PAUSE 50 LOOP 
Code:
{{      ************************************************
* Hoverfly 9-DOF Experimenter Board            *
* Author: Al Ducharme and Dan Burroughs        *
*                   *
************************************************


Revision History:
         V1.0 - original program




}} 
CON
  _CLKMODE      = XTAL1 + PLL8X                        
  _XINFREQ      = 10_000_000     '10MHz crystal is used


  I2C_SCL       = 20   'Sensors share the same I2C bus
  I2C_SDA       = 21


  LEDRedPin     = 24   'Status LED pins
  LEDGreenPin   = 25
  LEDBluePin    = 26
  


  ServoCh0      = 15  'These were tradionally used for Servo Outputs
  ServoCh1      = 16
  ServoCh2      = 17




  ReceiverCh0   = 13  'These were tradionally used for Receiver Inputs
  ReceiverCh1   = 12
  ReceiverCh2   = 18
  
OBJ


  Debug         : "FullDuplexSerialPlus"
  Sensors       : "SensorDriver"
    
VAR






PUB main


  Debug.start(31, 30, 0, 115200)
  waitcnt(clkfreq*2 + cnt)       'wait 2 seconds before starting so you can enable Com on debug terminal
  Debug.tx(Debug#CLS)


  ' Set LED pins
  dira[LEDRedPin] := 1
  dira[LEDGreenPin] := 1
  dira[LEDBluePin] := 1
  
  ' Start the Sensor driver
  Sensors.StartSensorData(2, I2C_SCL, I2C_SDA, Sensors#ITG_DLPF_10HZ)


  repeat
    
    Debug.Str(String(Debug#CLS,Debug#HOME))
    Debug.tx(Debug#TAB)
    Debug.tx(Debug#TAB)
    Debug.Str(String("X"))
    Debug.tx(Debug#TAB)
    Debug.Str(String("Y"))
    Debug.tx(Debug#TAB)
    Debug.Str(String("Z"))
    Debug.tx(Debug#TAB)
    Debug.tx(Debug#CR)
    Debug.Str(String("               ---------------------"))
    Debug.tx(Debug#CR)
    
    Debug.Str(String("ITG3200 Gyro: ",Debug#TAB))
    Debug.dec(Sensors.GetGyroX)
    Debug.tx(Debug#TAB)
    Debug.dec(Sensors.GetGyroY)
    Debug.tx(Debug#TAB)
    Debug.dec(Sensors.GetGyroZ)
    Debug.tx(Debug#CR)


    Debug.Str(String("ADXL345 Accel: ",Debug#TAB))
    Debug.dec(Sensors.GetAccX)
    Debug.tx(Debug#TAB)
    Debug.dec(Sensors.GetAccY)
    Debug.tx(Debug#TAB)
    Debug.dec(Sensors.GetAccZ)
    Debug.tx(Debug#CR)


    Debug.Str(String("HMC5883L Mag: ",Debug#TAB))
    Debug.dec(Sensors.GetMagX)
    Debug.tx(Debug#TAB)
    Debug.dec(Sensors.GetMagY)
    Debug.tx(Debug#TAB)
    Debug.dec(Sensors.GetMagZ)
    Debug.tx(Debug#CR)
    GyroLED
    waitcnt(clkfreq/20 + cnt)        '10Hz screen refresh
PUB GyroLED | x,y,z
  
  ' This is just for fun to make some colors with gyro movement
  ' move the board around...its pretty groooovy
  ' LEDs should be off when not moving the board
  x := Sensors.GetGyroX
  y := Sensors.GetGyroY
  z := Sensors.GetGyroZ
  
  if x >= 500
    outa[LEDRedPin] := 1
  else
    outa[LEDRedPin] := 0
  if y <= 500
    outa[LEDGreenPin] := 1
  else
    outa[LEDGreenPin] := 0
  if z <= 500
    outa[LEDBluePin] := 1
  else
    outa[LEDBluePin] := 0 
PUB DelayMS(dur)


  waitcnt(clkfreq/1_000*dur + cnt)  'Approximate delay
PUB DelayUS(dur)


  waitcnt(clkfreq/1_000_000*dur + cnt)  'Approximate delay
Code:
' {$STAMP BS2}' {$PBASIC 2.5}




UDPin   CON   8
LRPIn   CON   9
LR      VAR   Word
UD      VAR   Word


DO
  HIGH LRPin
  PAUSE 2
  RCTIME LRPin, 1, LR
  HIGH UDPin
  PAUSE 2
  RCTIME UDPin, 1, UD
  DEBUG HOME, "UD = ", DEC UD, ", LR = ", DEC LR, CLREOL
  PAUSE 50
LOOP