Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 3688|回復: 0

怎樣把2個程式合做1個而且可以正常運作

[複製鏈接]
timho0116 該用戶已被刪除
發表於 2009-5-16 16:31:02 | 顯示全部樓層 |閱讀模式
第一個程式:
' {$STAMP BS2}
' {$PBASIC 2.5}
DIRA = 0
DIRB = 15
DIRC = 15
DIRD = 15
OUTC = 0
c CON 300*10
d CON 500*10
e CON 600*10
KEYIN VAR Byte
DEBUG  "Input a number (1 to 4)",CR
MAIN:
keyin=0
SERIN 16,16468,100,NoDATA,[KEYIN]
IF KEYIN="1" THEN FORWARD
IF KEYIN="2" THEN BACKWARD
GOTO MAIN
FORWARD:
OUTC=%1111
PAUSE 20
OUTC=0
PAUSE 50
RETURN
BACKWARD:
OUTC=%0101
PAUSE 20
OUTC=0
PAUSE 70
RETURN
第2個程式:
'{$STAMP BS2}
'{$PBASIC 2.5}
c CON 300*10
d CON 500*10
e CON 600*10



DIRA = %0000
DIRB = %1111
DIRC = %1111
DIRD = %1111
OUTC = 0
Ping        PIN    12
cm          VAR    Word
rawDist     VAR    Word          ' raw measurement

Trigger     CON    5                  ' for BS2 trigger pulse = 10 uS
Scale       CON    $200               ' raw x 2.00 = uS
RawToCm     CON    2257                    ' 1 / 29.034 (with **)

DO




    GOSUB Get_Sonar                  ' get sensor value
    cm = rawDist ** RawToCm           ' convert to centimeters
    DEBUG HOME,CLS,"Measure Distance is ",DEC cm ," cm",CR
    PAUSE 300

       IF cm <15 THEN
    FREQOUT 15,150,c,c*2
    FREQOUT 15,150,d,d*2
    FREQOUT 15,150,e,e*2
    ELSEIF cm >15 THEN
    OUT15 = 0
    ENDIF

    LOOP

Get_Sonar:
  Ping = 0                                  ' make trigger 0-1-0
  PULSOUT Ping, Trigger                         ' activate sensor
  PULSIN  Ping, 1, rawDist                 ' measure echo pulse
  rawDist = rawDist */ Scale                    ' convert to uS
  rawDist = rawDist / 2                         ' remove return trip
RETURN
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-4-19 07:30 , Processed in 0.224147 second(s), 8 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表