By what you provide, it will look like almost this
Code:
TRISB=%00001111
LM_FWD var PORTB.4
LM_REV var PORTB.5
RM_FWD var PORTB.6
RM_REV var PORTB.7
MaskPORTB var byte
PeriodHALF var word ' Variable for Half Speed period (pulsout)
PeriodMIN var word ' Variable for Min Speed period (pulsout)
' You'll have to determine value for PeriodMIN & PeriodHALF here
PORTB=0
Start:
MaskPORTB=(PORTB>>1) & $07 ' get only B1,B2,B3 value
Select case maskportb
'LS(0) CS(1) RS (0) LM_FWD(FULL SPEED) RM_FWD (FULL)
case 2
LM_FWD =1
RM_FWD =1
'LS(1) CS(1) RS (0) LM_FWD(HALF SPEED) RM_FWD (FULL)
case 3
pulsout LM_FWD, PeriodHALF
RM_FWD=1
'LS(0) CS(1) RS (1) LM_FWD(HALF) RM_FWD (MAX)
case 6
pulsout LM_FWD, PeriodHALF
RM_FWD=1
'LS(0) CS(0) RS (1) LM_FWD(MAX SPEED) RM_FWD (MIN)
case 4
LM_FWD = 1
pulsout RM_FWD,PeriodMIN
end select
goto start
be sure of the way you interpret your sensor... i'm not sure about the info you provide.
2. another things is how to control
if the 3 Sensor = 1 3 times cross 4 junction, the robot will stop and turn 90 deg left (for example)
you mean ?
Bookmarks