NAVIGATION | Main | Abstract | Code | Diagrams and Graphs | Images |

Below is a partial copy of one of the programs used for the microcontroller. The code is written in a modified form of the BASIC language.
 


 
' {$STAMP BS2}
' {$PBASIC 2.5}

' ------- P PINs -----------------------------
     pMaxRecv   PIN 15
     pMaxClock  PIN 14
     pMaxPWM    PIN 0

' --------------- X Variables -----------------
     xDist VAR Word
     xPulse VAR Word
     xX VAR Byte

' ============ Main loop ================
     DO
          GOSUB Run
          GOSUB sSerial
          DEBUG CR, CR
          PAUSE 50
     LOOP
END
' ------------- Subs ------------------------
Run:
     DO
          HIGH pMaxClock
          PULSIN pMaxPWM, 1, xPulse
          LOW pMaxClock
          DEBUG ? xPulse, " "
          xPulse = xPulse/100
          IF xPulse < 10 THEN Sound1
          IF xPulse < 50 THEN Sound2
          IF xPulse < 100 THEN Sound3
          IF xPulse < 200 THEN Sound4
          IF xPulse < 350 THEN Sound5
     LOOP
          DEBUG CR
RETURN

sSerial:
     FOR xX = 1 TO 5
          SERIN pMaxRecv\pMaxClock, 16468, [WAIT ("R"), DEC xDist]
          DEBUG DEC5 xDist, " "
          PAUSE 50
     NEXT
DEBUG CR
RETURN

Sound1:
     FREQOUT 12, 100, 4
     PAUSE 100
GOTO Run

Sound2:
     FREQOUT 12, 200, 3
     PAUSE 100
GOTO Run

Sound3:
     FREQOUT 4, 200, 3136
     PAUSE 200
GOTO Run

Sound4:
     FREQOUT 4, 200, 2349
     PAUSE 300
GOTO Run

Sound5:
     FREQOUT 4, 200, 1975
     PAUSE 700
GOTO Run