Subversion Repositories svnkaklik

Rev

Rev 320 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 320 Rev 321
Line 31... Line 31...
31
Sub send(c As Byte)
31
Sub send(c As Byte)
32
	Do while (pir1 & (1 << TXIF)) = 0 Loop
32
	Do while (pir1 & (1 << TXIF)) = 0 Loop
33
	txreg = c
33
	txreg = c
34
End Sub
34
End Sub
35
 
35
 
-
 
36
Sub delay(cas As Byte)
-
 
37
Dim i As Byte
-
 
38
Dim x As Byte
-
 
39
    Do while i <= cas
-
 
40
     Do While x <= 100
-
 
41
      Call receive()
-
 
42
      x=x+1
-
 
43
     loop
-
 
44
    i=i+1
-
 
45
	loop	
-
 
46
End Sub
-
 
47
 
36
Sub main()
48
Sub main()
37
	Dim motors As Byte
49
	Dim motors As Byte
38
	Dim sensors As Byte
50
	Dim sensors As Byte
39
	Dim leds As Byte
-
 
40
	Dim leds1 As Byte
-
 
41
	Dim buttons As Byte
51
	Dim buttons As Byte
42
	Dim i As Long
52
	Dim i As Long
43
 
53
 
44
	'NASTAVENI IO
54
	'NASTAVENI IO
45
	lata=0xFF
55
	lata=0xFF
Line 58... Line 68...
58
	txsta = txsta & ~(1 << BRGH)
68
	txsta = txsta & ~(1 << BRGH)
59
	txsta = txsta | (1 << TXEN)
69
	txsta = txsta | (1 << TXEN)
60
	rcsta = rcsta | (1 << CREN)
70
	rcsta = rcsta | (1 << CREN)
61
	rcsta = rcsta | (1 << SPEN)
71
	rcsta = rcsta | (1 << SPEN)
62
			 	
72
			 	
-
 
73
	motors = 0x00
63
	
74
	
-
 
75
	lata = 0x0E 
-
 
76
    Call delay(200)
-
 
77
	lata = 0x0D
-
 
78
    Call delay(200)
64
	leds = 0xFF
79
	lata = 0x0B
-
 
80
    Call delay(200)
65
	leds1 = 0x0F 
81
	lata = 0x07
-
 
82
    Call delay(200)
-
 
83
 
-
 
84
	motors = 0x77
-
 
85
 
-
 
86
    Call delay(100)
66
 
87
 
67
	motors = 0x00
-
 
68
		
88
		
69
Do while 1
89
Do while 1
70
		
-
 
71
  Do while i <= 500000
-
 
72
    i=i+1
-
 
73
	loop
-
 
74
  motors = motors + 0x11
-
 
75
		
-
 
76
		elseif (buttons.4)=0 Then
-
 
77
			i=0
-
 
78
			leds1 = leds1 + 1
-
 
79
			lata = leds1
-
 
80
			Do while i <= 500000
-
 
81
			i=i+1
-
 
82
			loop
-
 
83
			motors = motors - 0x11
-
 
84
		End If
-
 
85
		
-
 
86
		leds = 0xFF
-
 
87
		sensors =0xFF 
-
 
88
		sensors = Call receive()	'prijmi stav cidel senzoru
-
 
89
		'Bity v bajtu sensors
-
 
90
		'BIT3=LEVE SPODNI, BIT2=PRAVE SPODNI, BIT1=LEVE PREDNI, BIT0=PRAVE PREDNI
-
 
91
		'prislusny bit v nule znamena aktivni senzor
-
 
92
		If (sensors.0)=0 Then
-
 
93
			'pravy predni senzor aktivni
-
 
94
			'rozsvit prislusnou LED k senzoru, zatim jen v promenne
-
 
95
			leds = leds & ~(1 << 1)	'led sviti, kdyz se ji bit znuluje
-
 
96
		End If
-
 
97
		
-
 
98
		If (sensors.1)=0 Then
-
 
99
			'levy predni senzor aktivni
-
 
100
			'rozsvit prislusnou LED k senzoru, zatim jen v promenne
-
 
101
			leds = leds & ~(1 << 2)	'led sviti, kdyz se ji bit znuluje
-
 
102
		End If
-
 
103
 
-
 
104
		If (sensors.2)=0 Then
-
 
105
			'pravy spodni senzor aktivni
-
 
106
			'rozsvit prislusnou LED k senzoru, zatim jen v promenne
-
 
107
			leds = leds & ~(1 << 0)	'led sviti, kdyz se ji bit znuluje
-
 
108
		End If
-
 
109
		
-
 
110
		If (sensors.3)=0 Then
-
 
111
			'levy spodni senzor aktivni
-
 
112
			'rozsvit prislusnou LED k senzoru, zatim jen v promenne
-
 
113
			leds = leds & ~(1 << 3)	'led sviti, kdyz se ji bit znuluje
-
 
114
		End If 
-
 
115
		
-
 
116
		
-
 
117
	lata = leds
-
 
118
	call send(motors)
-
 
119
 
90
 
-
 
91
  sensors =0xFF 
-
 
92
  sensors = Call receive()	'prijmi stav cidel senzoru
120
		
93
		
-
 
94
  If (!((sensors.0) and (sensors.1))) Then
-
 
95
    motors = 0x77
-
 
96
  End If
121
	Loop
97
			
-
 
98
  If (!(sensors.2)) Then
-
 
99
    motors = 0xF7
-
 
100
  End If
122
 
101
		
-
 
102
  If (!(sensors.3)) Then
-
 
103
    motors = 0x7F
-
 
104
  End If 
-
 
105
				
-
 
106
  lata = sensors
-
 
107
  call send(motors)
123
	
108
		
-
 
109
Loop
-
 
110
  	
124
End Sub
111
End Sub