Subversion Repositories svnkaklik

Rev

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

Rev 321 Rev 322
Line 25... Line 25...
25
#pragma CLOCK_FREQ 40000000
25
#pragma CLOCK_FREQ 40000000
26
 
26
 
27
Function receive() As Byte
27
Function receive() As Byte
28
 
28
 
29
	If ( (rcsta.OERR = 1) ) Then
29
	If ( (rcsta.OERR = 1) ) Then
30
0204  A2AB      	BTFSS gbl_rcsta,1
30
020E  A2AB      	BTFSS gbl_rcsta,1
31
0206  D002      	BRA	label268438550
31
0210  D002      	BRA	label268438551
32
020C            label268438550
32
0216            label268438551
33
 
33
 
34
		rcsta.CREN = 0
34
		rcsta.CREN = 0
35
0208  98AB      	BCF gbl_rcsta,4
35
0212  98AB      	BCF gbl_rcsta,4
36
 
36
 
37
        rcsta.CREN = 1
37
        rcsta.CREN = 1
38
020A  88AB      	BSF gbl_rcsta,4
38
0214  88AB      	BSF gbl_rcsta,4
39
 
39
 
40
	End If
40
	End If
41
    Do While (pir1.RCIF = 0)
41
    Do While (pir1.RCIF = 0)
42
020C  AA9E      	BTFSS gbl_pir1,5
42
0216  AA9E      	BTFSS gbl_pir1,5
43
020E  D7FE      	BRA	label268438550
43
0218  D7FE      	BRA	label268438551
44
 
44
 
45
	Loop
45
	Loop
46
	receive = rcreg
46
	receive = rcreg
47
0210  50AE      	MOVF gbl_rcreg, W
47
021A  50AE      	MOVF gbl_rcreg, W
48
0212  6E07      	MOVWF CompTempVarRet489
48
021C  6E07      	MOVWF CompTempVarRet489
49
 
49
 
50
	
50
	
51
End Function
51
End Function
52
0214  0012      	RETURN
52
021E  0012      	RETURN
53
 
53
 
54
 
54
 
55
Sub send(c As Byte)
55
Sub send(c As Byte)
56
 
56
 
57
	Do while (pir1 & (1 << TXIF)) = 0 Loop
57
	Do while (pir1 & (1 << TXIF)) = 0 Loop
58
0216            label268438561
58
0204            label268438562
59
0216  A89E      	BTFSS gbl_pir1,4
59
0204  A89E      	BTFSS gbl_pir1,4
60
0218  D7FE      	BRA	label268438561
60
0206  D7FE      	BRA	label268438562
61
 
61
 
62
	txreg = c
62
	txreg = c
63
021A  5004      	MOVF send_00000_arg_c, W
63
0208  5007      	MOVF send_00000_arg_c, W
64
021C  6EAD      	MOVWF gbl_txreg
64
020A  6EAD      	MOVWF gbl_txreg
65
 
65
 
66
End Sub
66
End Sub
67
021E  0012      	RETURN
-
 
68
 
-
 
69
 
-
 
70
Sub delay(cas As Byte)
-
 
71
 
-
 
72
Dim i As Byte
-
 
73
Dim x As Byte
-
 
74
    Do while i <= cas
-
 
75
0220            label268438570
-
 
76
0220  5005      	MOVF delay_00000_1_i, W
-
 
77
0222  5C04      	SUBWF delay_00000_arg_cas, W
-
 
78
0224  A0D8      	BTFSS STATUS,C
-
 
79
 
-
 
80
     Do While x <= 100
-
 
81
0228  5006      	MOVF delay_00000_1_x, W
-
 
82
022A  0864      	SUBLW 0x64
-
 
83
022C  E305      	BNC	label268438574
-
 
84
 
-
 
85
      Call receive()
-
 
86
022E  EC02F001  	CALL receive_00000
-
 
87
 
-
 
88
      x=x+1
-
 
89
0232  2806      	INCF delay_00000_1_x, W
-
 
90
0234  6E06      	MOVWF delay_00000_1_x
-
 
91
 
-
 
92
     loop
-
 
93
0236  D7F8      	BRA	label4026532417
-
 
94
0238            label268438574
-
 
95
 
-
 
96
    i=i+1
-
 
97
0238  2805      	INCF delay_00000_1_i, W
-
 
98
023A  6E05      	MOVWF delay_00000_1_i
-
 
99
 
-
 
100
	loop
-
 
101
023C  D7F1      	BRA	label268438570
-
 
102
 
-
 
103
	
-
 
104
End Sub
-
 
105
0226  0012      	RETURN
67
020C  0012      	RETURN
106
0228            label4026532417
-
 
107
 
68
 
108
 
69
 
109
Sub main()
70
Sub main()
110
 
71
 
111
	Dim motors As Byte
72
	Dim motors As Byte
112
	Dim sensors As Byte
73
	Dim sensors As Byte
113
	Dim buttons As Byte
74
	Dim buttons As Byte
-
 
75
	Dim leds As Byte
-
 
76
	Dim count As word
114
	Dim i As Long
77
	Dim i As Long
115
 
78
 
116
	'NASTAVENI IO
79
	'NASTAVENI IO
117
	lata=0xFF
80
	lata=0xFF
118
023E  6889      	SETF gbl_lata
81
0220  6889      	SETF gbl_lata
119
 
82
 
120
	latb=0
83
	latb=0
121
0240  6A8A      	CLRF gbl_latb
84
0222  6A8A      	CLRF gbl_latb
122
 
85
 
123
	latc=0xFF
86
	latc=0xFF
124
0242  688B      	SETF gbl_latc
87
0224  688B      	SETF gbl_latc
125
 
88
 
126
	trisa=0xF0
89
	trisa=0xF0
127
0244  0EF0      	MOVLW 0xF0
90
0226  0EF0      	MOVLW 0xF0
128
0246  6E92      	MOVWF gbl_trisa
91
0228  6E92      	MOVWF gbl_trisa
129
 
92
 
130
	trisb=0x3F
93
	trisb=0x3F
131
0248  0E3F      	MOVLW 0x3F
94
022A  0E3F      	MOVLW 0x3F
132
024A  6E93      	MOVWF gbl_trisb
95
022C  6E93      	MOVWF gbl_trisb
133
 
96
 
134
	trisc=0x9F
97
	trisc=0x9F
135
024C  0E9F      	MOVLW 0x9F
98
022E  0E9F      	MOVLW 0x9F
136
024E  6E94      	MOVWF gbl_trisc
99
0230  6E94      	MOVWF gbl_trisc
137
 
100
 
138
 
101
 
139
	'VYPNOUT ADC
102
	'VYPNOUT ADC
140
	adcon1=0xC6
103
	adcon1=0xC6
141
0250  0EC6      	MOVLW 0xC6
104
0232  0EC6      	MOVLW 0xC6
142
0252  6EC1      	MOVWF gbl_adcon1
105
0234  6EC1      	MOVWF gbl_adcon1
143
 
106
 
144
	adcon0=0xC0
107
	adcon0=0xC0
145
0254  0EC0      	MOVLW 0xC0
108
0236  0EC0      	MOVLW 0xC0
146
0256  6EC2      	MOVWF gbl_adcon0
109
0238  6EC2      	MOVWF gbl_adcon0
147
 
110
 
148
 
111
 
149
	'UART 9600bps
112
	'UART 9600bps
150
	spbrg=64
113
	spbrg=64
151
0258  0E40      	MOVLW 0x40
114
023A  0E40      	MOVLW 0x40
152
025A  6EAF      	MOVWF gbl_spbrg
115
023C  6EAF      	MOVWF gbl_spbrg
153
 
116
 
154
	txsta = txsta & ~(1 << BRGH)
117
	txsta = txsta & ~(1 << BRGH)
155
025C  0EFB      	MOVLW 0xFB
118
023E  0EFB      	MOVLW 0xFB
156
025E  14AC      	ANDWF gbl_txsta, W
119
0240  14AC      	ANDWF gbl_txsta, W
157
0260  6EAC      	MOVWF gbl_txsta
120
0242  6EAC      	MOVWF gbl_txsta
158
 
121
 
159
	txsta = txsta | (1 << TXEN)
122
	txsta = txsta | (1 << TXEN)
160
0262  0E20      	MOVLW 0x20
123
0244  0E20      	MOVLW 0x20
161
0264  10AC      	IORWF gbl_txsta, W
124
0246  10AC      	IORWF gbl_txsta, W
162
0266  6EAC      	MOVWF gbl_txsta
125
0248  6EAC      	MOVWF gbl_txsta
163
 
126
 
164
	rcsta = rcsta | (1 << CREN)
127
	rcsta = rcsta | (1 << CREN)
165
0268  0E10      	MOVLW 0x10
128
024A  0E10      	MOVLW 0x10
166
026A  10AB      	IORWF gbl_rcsta, W
129
024C  10AB      	IORWF gbl_rcsta, W
167
026C  6EAB      	MOVWF gbl_rcsta
130
024E  6EAB      	MOVWF gbl_rcsta
168
 
131
 
169
	rcsta = rcsta | (1 << SPEN)
132
	rcsta = rcsta | (1 << SPEN)
170
026E  0E80      	MOVLW 0x80
133
0250  0E80      	MOVLW 0x80
171
0270  10AB      	IORWF gbl_rcsta, W
134
0252  10AB      	IORWF gbl_rcsta, W
172
0272  6EAB      	MOVWF gbl_rcsta
135
0254  6EAB      	MOVWF gbl_rcsta
173
 
136
 
174
			 	
137
			 	
175
	motors = 0x00
138
	motors = 0x00
176
0274  6A01      	CLRF main_1_motors
139
0256  6A01      	CLRF main_1_motors
-
 
140
 
-
 
141
		
-
 
142
    do while (portb.0 = 1)
-
 
143
0258            label268438598
-
 
144
0258  B081      	BTFSC gbl_portb,0
-
 
145
025A  D7FE      	BRA	label268438598
-
 
146
 
-
 
147
	loop
-
 
148
 
-
 
149
	leds = 0xF0
-
 
150
025C  0EF0      	MOVLW 0xF0
-
 
151
025E  6E03      	MOVWF main_1_leds
-
 
152
 
-
 
153
	count = 400000
-
 
154
0260  0E80      	MOVLW 0x80
-
 
155
0262  6E04      	MOVWF main_1_count
-
 
156
0264  0E1A      	MOVLW 0x1A
-
 
157
0266  6E05      	MOVWF main_1_count+D'1'
177
 
158
 
178
	
159
	
179
	lata = 0x0E 
160
	do while (count > 0)
180
0276  0E0E      	MOVLW 0x0E
161
0268            label268438603
181
0278  6E89      	MOVWF gbl_lata
162
0268  5004      	MOVF main_1_count, W
182
 
-
 
183
    Call delay(200)
163
026A  0800      	SUBLW 0x00
184
027A  0EC8      	MOVLW 0xC8
164
026C  B0D8      	BTFSC STATUS,C
185
027C  6E04      	MOVWF delay_00000_arg_cas
165
026E  5005      	MOVF main_1_count+D'1', W
186
027E  EC10F001  	CALL delay_00000
166
0270  E013      	BZ	label268438605
187
 
167
 
188
	lata = 0x0D
168
		count = count -1
189
0282  0E0D      	MOVLW 0x0D
169
0272  0E01      	MOVLW 0x01
-
 
170
0274  5C04      	SUBWF main_1_count, W
-
 
171
0276  6E07      	MOVWF CompTempVar492
-
 
172
0278  A0D8      	BTFSS STATUS,C
-
 
173
027A  0605      	DECF main_1_count+D'1', F
-
 
174
027C  5007      	MOVF CompTempVar492, W
190
0284  6E89      	MOVWF gbl_lata
175
027E  6E04      	MOVWF main_1_count
191
 
176
 
-
 
177
		
-
 
178
		if count < 300000 then
192
    Call delay(200)
179
			leds = leds | 1
193
0286  0EC8      	MOVLW 0xC8
180
0280  0E01      	MOVLW 0x01
194
0288  6E04      	MOVWF delay_00000_arg_cas
181
0282  1003      	IORWF main_1_leds, W
195
028A  EC10F001  	CALL delay_00000
182
0284  6E03      	MOVWF main_1_leds
196
 
183
 
-
 
184
		end if
-
 
185
		if count < 200000 then
197
	lata = 0x0B
186
			leds = leds | 2
198
028E  0E0B      	MOVLW 0x0B
187
0286  0E02      	MOVLW 0x02
-
 
188
0288  1003      	IORWF main_1_leds, W
199
0290  6E89      	MOVWF gbl_lata
189
028A  6E03      	MOVWF main_1_leds
200
 
190
 
-
 
191
		end if
-
 
192
		if count < 100000 then
201
    Call delay(200)
193
			leds = leds | 4
202
0292  0EC8      	MOVLW 0xC8
194
028C  0E04      	MOVLW 0x04
203
0294  6E04      	MOVWF delay_00000_arg_cas
195
028E  1003      	IORWF main_1_leds, W
204
0296  EC10F001  	CALL delay_00000
196
0290  6E03      	MOVWF main_1_leds
205
 
197
 
-
 
198
		end if
206
	lata = 0x07
199
		lata = leds
207
029A  0E07      	MOVLW 0x07
200
0292  5003      	MOVF main_1_leds, W
208
029C  6E89      	MOVWF gbl_lata
201
0294  6E89      	MOVWF gbl_lata
209
 
202
 
210
    Call delay(200)
203
	loop
211
029E  0EC8      	MOVLW 0xC8
204
0296  D7E8      	BRA	label268438603
212
02A0  6E04      	MOVWF delay_00000_arg_cas
-
 
213
02A2  EC10F001  	CALL delay_00000
205
0298            label268438605
214
 
-
 
215
 
206
 
216
	motors = 0x77
207
	leds = 0xFF
217
02A6  0E77      	MOVLW 0x77
-
 
218
02A8  6E01      	MOVWF main_1_motors
208
0298  6803      	SETF main_1_leds
219
 
-
 
220
 
209
 
221
    Call delay(100)
210
	lata = 0xFF
222
02AA  0E64      	MOVLW 0x64
211
029A  6889      	SETF gbl_lata
223
02AC  6E04      	MOVWF delay_00000_arg_cas
-
 
224
02AE  EC10F001  	CALL delay_00000
-
 
225
 
212
 
226
 
213
 
227
		
214
		
228
Do while 1
215
Do while 1
229
02B2            label268438640
216
029C            label268438623
230
 
217
 
231
 
218
 
232
  sensors =0xFF 
219
  sensors =0xFF 
233
02B2  6802      	SETF main_1_sensors
220
029C  6802      	SETF main_1_sensors
234
 
221
 
235
  sensors = Call receive()	'prijmi stav cidel senzoru
222
  sensors = Call receive()	'prijmi stav cidel senzoru
236
02B4  EC02F001  	CALL receive_00000
223
029E  EC07F001  	CALL receive_00000
237
02B8  5007      	MOVF CompTempVarRet489, W
224
02A2  5007      	MOVF CompTempVarRet489, W
238
02BA  6E02      	MOVWF main_1_sensors
225
02A4  6E02      	MOVWF main_1_sensors
239
 
226
 
240
		
227
		
241
  If (!((sensors.0) and (sensors.1))) Then
228
  If (!((sensors.0) and (sensors.1))) Then
242
02BC  6A03      	CLRF CompTempVar491
229
02A6  6A06      	CLRF CompTempVar491
243
02BE  A202      	BTFSS main_1_sensors,1
230
02A8  A202      	BTFSS main_1_sensors,1
244
02C0  D003      	BRA	label268438645
231
02AA  D003      	BRA	label268438628
245
02C2  A002      	BTFSS main_1_sensors,0
232
02AC  A002      	BTFSS main_1_sensors,0
246
02C4  D001      	BRA	label268438645
233
02AE  D001      	BRA	label268438628
247
02C6  2A03      	INCF CompTempVar491, F
234
02B0  2A06      	INCF CompTempVar491, F
248
02C8            label268438645
235
02B2            label268438628
249
02C8  5203      	MOVF CompTempVar491, F
236
02B2  5206      	MOVF CompTempVar491, F
250
02CA  E102      	BNZ	label268438646
237
02B4  E102      	BNZ	label268438629
251
02D0            label268438646
238
02BA            label268438629
252
 
239
 
253
    motors = 0x77
240
    motors = 0x77
254
02CC  0E77      	MOVLW 0x77
241
02B6  0E77      	MOVLW 0x77
255
02CE  6E01      	MOVWF main_1_motors
242
02B8  6E01      	MOVWF main_1_motors
256
 
243
 
257
  End If
244
  End If
258
			
245
			
259
  If (!(sensors.2)) Then
246
  If (!(sensors.2)) Then
260
02D0  B402      	BTFSC main_1_sensors,2
247
02BA  B402      	BTFSC main_1_sensors,2
261
02D2  D002      	BRA	label268438649
248
02BC  D002      	BRA	label268438632
262
02D8            label268438649
249
02C2            label268438632
263
 
250
 
264
    motors = 0xF7
251
    motors = 0xF7
265
02D4  0EF7      	MOVLW 0xF7
252
02BE  0EF7      	MOVLW 0xF7
266
02D6  6E01      	MOVWF main_1_motors
253
02C0  6E01      	MOVWF main_1_motors
267
 
254
 
268
  End If
255
  End If
269
		
256
		
270
  If (!(sensors.3)) Then
257
  If (!(sensors.3)) Then
271
02D8  B602      	BTFSC main_1_sensors,3
258
02C2  B602      	BTFSC main_1_sensors,3
272
02DA  D002      	BRA	label268438652
259
02C4  D002      	BRA	label268438635
273
02E0            label268438652
260
02CA            label268438635
274
 
261
 
275
    motors = 0x7F
262
    motors = 0x7F
276
02DC  0E7F      	MOVLW 0x7F
263
02C6  0E7F      	MOVLW 0x7F
277
02DE  6E01      	MOVWF main_1_motors
264
02C8  6E01      	MOVWF main_1_motors
278
 
265
 
279
  End If 
266
  End If 
280
				
267
				
281
  lata = sensors
268
  lata = sensors
282
02E0  5002      	MOVF main_1_sensors, W
269
02CA  5002      	MOVF main_1_sensors, W
283
02E2  6E89      	MOVWF gbl_lata
270
02CC  6E89      	MOVWF gbl_lata
284
 
271
 
285
  call send(motors)
272
  call send(motors)
286
02E4  5001      	MOVF main_1_motors, W
273
02CE  5001      	MOVF main_1_motors, W
287
02E6  6E04      	MOVWF send_00000_arg_c
274
02D0  6E07      	MOVWF send_00000_arg_c
288
02E8  EC0BF001  	CALL send_00000
275
02D2  EC02F001  	CALL send_00000
289
 
276
 
290
		
277
		
291
Loop
278
Loop
292
02EC  D7E2      	BRA	label268438640
279
02D6  D7E2      	BRA	label268438623
293
 
280
 
294
  	
281
  	
295
End Sub
282
End Sub
296
 
283
 
297
 
284
 
298
////////////////////////////////////////
285
////////////////////////////////////////
299
// Code with no source :-)
286
// Code with no source :-)
300
////////////////////////////////////////
287
////////////////////////////////////////
301
0200  EF77F001  	GOTO	_startup
288
0200  EF6CF001  	GOTO	_startup
302
 
-
 
303
 
-
 
304
 
-
 
305
 
-
 
306
 
-
 
307
 
289
 
308
 
290
 
309
02EE            _startup
291
02D8            _startup
310
02EE  EF1FF001  	GOTO	main
292
02D8  EF10F001  	GOTO	main
311
 
293
 
312
300000  FEFF      	DW 0xFEFF
294
300000  FEFF      	DW 0xFEFF
313
300002  FEF6      	DW 0xFEF6
295
300002  FEF6      	DW 0xFEF6
314
300004  FEFF      	DW 0xFEFF
296
300004  FEFF      	DW 0xFEFF
315
300006  FFFB      	DW 0xFFFB
297
300006  FFFB      	DW 0xFFFB