PROGRAM NAME CREATED VIA NEW PROJECT!!
COPY AND PASTE FROM NEXT LINE DOWN
'***********************************
Dim Value as Integer
Dim duration as Integer
'***********************************************
Sub Procedure Forward
PortB = %00000000
Delay_ms(10)
PortB = %00101101
Delay_ms(50)
end sub
'***********************************************
Sub Procedure Reverse
PortB = %00000000
Delay_ms(10)
PortB = %00110011
Delay_ms(50)
end sub
'***********************************************
Sub Procedure T_Left
PortB = %00000000
Delay_ms(10)
PortB = %00101011
Delay_ms(50)
end sub
'***********************************************
Sub Procedure T_Right
PortB = %00000000
Delay_ms(10)
PortB = %00110101
Delay_ms(50)
end sub
'***********************************************
Sub Procedure Halt
PortB = %00000000
end sub
'***********************************************
Sub Procedure GetValue1
TrisA = %00001100 ' Set the pulsing ports to output
Value = 1 ' Start Value at 1
PortA = %00000001 ' Pulse the capacitor to fill it
Delay_ms(5) ' Charge up the capacitor
TrisA = %00001101 ' Set the port to collect data
While TestBit(PortA,0) > 0 ' Loop till the capacitor
Value = Value + 1 ' runs out of juice
Wend
If value > 20 Then ' If it goes over 100 then
duration = 10 ' Make this number bigger to make it do it longer
While duration > 0
Reverse
duration = duration - 1
Wend
duration = 10 ' Make this number bigger to make it do it longer
While duration > 0
T_Right
duration = duration - 1
Wend
duration = 10 ' Make this number bigger to make it do it longer
While duration > 0
Reverse
duration = duration - 1
Wend
duration = 10 ' Make this number bigger to make it do it longer
While duration > 0
T_Right
duration = duration - 1
Wend
End If
End Sub
'*************************
Sub Procedure GetValue2
TrisA = %00001100 ' Set the pulsing ports to output
Value = 1 ' Start Value at 1
PortA = %00000010 ' Pulse the capacitor to fill it
Delay_ms(5) ' Charge up the capacitor
TrisA = %00001110 ' Set the port to collect data
While TestBit(PortA,1) > 0 ' Loop till the capacitor
Value = Value + 1 ' runs out of juice
Wend
PortB = Value ' Display the data
If value > 20 Then ' If it goes over 100 then
duration = 10 ' Make this number bigger to make it do it longer
While duration > 0
Reverse
duration = duration - 1
Wend
duration = 10 ' Make this number bigger to make it do it longer
While duration > 0
T_Left
duration = duration - 1
Wend
duration = 10 ' Make this number bigger to make it do it longer
While duration > 0
Reverse
duration = duration - 1
Wend
duration = 10 ' Make this number bigger to make it do it longer
While duration > 0
T_Left
duration = duration - 1
Wend
End If
End Sub
'***********************************************
Sub Procedure ScanLeft
If TestBit(PortA,2) = 0 Then
'T_Right step****
duration = 10 ' Make this number bigger to make it do it longer
While duration > 0
T_Left
duration = duration - 1
Wend
End if
end sub
'***********************************************
Sub Procedure ScanRight
If TestBit(PortA,3) = 0 Then
'T_Right step****
duration = 10 ' Make this number bigger to make it do it longer
While duration > 0
T_Right
duration = duration - 1
Wend
End if
end sub
'***********************************************
Main:
TrisB = %00000000
TrisA = %00001100 ' Need two inputs for switches
CMCON = %00000111
While True
GetValue1 ' Get left data
GetValue2 ' Get right Data
ScanRight
ScanLeft
Forward
Wend
End.