Subversion Repositories svnkaklik

Rev

Rev 323 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
318 kaklik 1
;/////////////////////////////////////////////////////////////////////////////////
2
;// Code Generator: BoostBasic Compiler - http://www.sourceboost.com
3
;// Version       : 6.70
4
;// License Type  : Pro License
5
;// Limitations   : PIC18 max code size:Unlimited, max RAM banks:Unlimited
6
;/////////////////////////////////////////////////////////////////////////////////
7
 
8
'robot
9
 
10
'#pragma DATA _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
11
 
12
 
13
#pragma DATA _CONFIG1H, _OSCS_OFF_1H & _HSPLL_OSC_1H
14
#pragma DATA _CONFIG2L, _BOR_ON_2L & _BORV_42_2L & _PWRT_ON_2L
15
#pragma DATA _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
16
#pragma DATA _CONFIG3H, _CCP2MX_OFF_3H
17
#pragma DATA _CONFIG4L, _STVR_ON_4L & _LVP_OFF_4L & _DEBUG_OFF_4L
18
#pragma DATA _CONFIG5L, _CP0_ON_5L & _CP1_ON_5L & _CP2_ON_5L & _CP3_ON_5L
19
#pragma DATA _CONFIG5H, _CPB_ON_5H & _CPD_ON_5H
20
#pragma DATA _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
21
#pragma DATA _CONFIG6H, _WRTC_ON_6H & _WRTB_ON_6H & _WRTD_OFF_6H
22
#pragma DATA _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L
23
#pragma DATA _CONFIG7H, _EBTRB_ON_7H
24
 
25
#pragma CLOCK_FREQ 40000000
26
 
27
Function receive() As Byte
28
 
29
	If ( (rcsta.OERR = 1) ) Then
322 kaklik 30
020E  A2AB      	BTFSS gbl_rcsta,1
31
0210  D002      	BRA	label268438551
32
0216            label268438551
318 kaklik 33
 
34
		rcsta.CREN = 0
322 kaklik 35
0212  98AB      	BCF gbl_rcsta,4
318 kaklik 36
 
37
        rcsta.CREN = 1
322 kaklik 38
0214  88AB      	BSF gbl_rcsta,4
318 kaklik 39
 
40
	End If
41
    Do While (pir1.RCIF = 0)
322 kaklik 42
0216  AA9E      	BTFSS gbl_pir1,5
43
0218  D7FE      	BRA	label268438551
318 kaklik 44
 
45
	Loop
46
	receive = rcreg
322 kaklik 47
021A  50AE      	MOVF gbl_rcreg, W
324 kaklik 48
021C  6E09      	MOVWF CompTempVarRet489
318 kaklik 49
 
50
 
51
End Function
322 kaklik 52
021E  0012      	RETURN
318 kaklik 53
 
54
 
55
Sub send(c As Byte)
56
 
57
	Do while (pir1 & (1 << TXIF)) = 0 Loop
322 kaklik 58
0204            label268438562
59
0204  A89E      	BTFSS gbl_pir1,4
60
0206  D7FE      	BRA	label268438562
318 kaklik 61
 
62
	txreg = c
324 kaklik 63
0208  5009      	MOVF send_00000_arg_c, W
322 kaklik 64
020A  6EAD      	MOVWF gbl_txreg
318 kaklik 65
 
66
End Sub
322 kaklik 67
020C  0012      	RETURN
318 kaklik 68
 
69
 
70
Sub main()
71
 
72
	Dim motors As Byte
73
	Dim sensors As Byte
74
	Dim buttons As Byte
322 kaklik 75
	Dim leds As Byte
324 kaklik 76
	Dim count As Long
318 kaklik 77
	Dim i As Long
78
 
79
	'NASTAVENI IO
80
	lata=0xFF
322 kaklik 81
0220  6889      	SETF gbl_lata
318 kaklik 82
 
83
	latb=0
322 kaklik 84
0222  6A8A      	CLRF gbl_latb
318 kaklik 85
 
86
	latc=0xFF
322 kaklik 87
0224  688B      	SETF gbl_latc
318 kaklik 88
 
89
	trisa=0xF0
322 kaklik 90
0226  0EF0      	MOVLW 0xF0
91
0228  6E92      	MOVWF gbl_trisa
318 kaklik 92
 
93
	trisb=0x3F
322 kaklik 94
022A  0E3F      	MOVLW 0x3F
95
022C  6E93      	MOVWF gbl_trisb
318 kaklik 96
 
97
	trisc=0x9F
322 kaklik 98
022E  0E9F      	MOVLW 0x9F
99
0230  6E94      	MOVWF gbl_trisc
318 kaklik 100
 
101
 
102
	'VYPNOUT ADC
103
	adcon1=0xC6
322 kaklik 104
0232  0EC6      	MOVLW 0xC6
105
0234  6EC1      	MOVWF gbl_adcon1
318 kaklik 106
 
107
	adcon0=0xC0
322 kaklik 108
0236  0EC0      	MOVLW 0xC0
109
0238  6EC2      	MOVWF gbl_adcon0
318 kaklik 110
 
111
 
112
	'UART 9600bps
113
	spbrg=64
322 kaklik 114
023A  0E40      	MOVLW 0x40
115
023C  6EAF      	MOVWF gbl_spbrg
318 kaklik 116
 
117
	txsta = txsta & ~(1 << BRGH)
322 kaklik 118
023E  0EFB      	MOVLW 0xFB
119
0240  14AC      	ANDWF gbl_txsta, W
120
0242  6EAC      	MOVWF gbl_txsta
318 kaklik 121
 
122
	txsta = txsta | (1 << TXEN)
322 kaklik 123
0244  0E20      	MOVLW 0x20
124
0246  10AC      	IORWF gbl_txsta, W
125
0248  6EAC      	MOVWF gbl_txsta
318 kaklik 126
 
127
	rcsta = rcsta | (1 << CREN)
322 kaklik 128
024A  0E10      	MOVLW 0x10
129
024C  10AB      	IORWF gbl_rcsta, W
130
024E  6EAB      	MOVWF gbl_rcsta
318 kaklik 131
 
132
	rcsta = rcsta | (1 << SPEN)
322 kaklik 133
0250  0E80      	MOVLW 0x80
134
0252  10AB      	IORWF gbl_rcsta, W
135
0254  6EAB      	MOVWF gbl_rcsta
318 kaklik 136
 
137
 
321 kaklik 138
	motors = 0x00
322 kaklik 139
0256  6A01      	CLRF main_1_motors
321 kaklik 140
 
322 kaklik 141
 
142
    do while (portb.0 = 1)
143
0258            label268438598
144
0258  B081      	BTFSC gbl_portb,0
145
025A  D7FE      	BRA	label268438598
318 kaklik 146
 
322 kaklik 147
	loop
318 kaklik 148
 
322 kaklik 149
	leds = 0xF0
150
025C  0EF0      	MOVLW 0xF0
151
025E  6E03      	MOVWF main_1_leds
318 kaklik 152
 
322 kaklik 153
	count = 400000
154
0260  0E80      	MOVLW 0x80
155
0262  6E04      	MOVWF main_1_count
324 kaklik 156
0264  0E1A      	MOVLW 0x1A
157
0266  6E05      	MOVWF main_1_count+D'1'
158
0268  0E06      	MOVLW 0x06
159
026A  6E06      	MOVWF main_1_count+D'2'
160
026C  6A07      	CLRF main_1_count+D'3'
318 kaklik 161
 
322 kaklik 162
 
163
	do while (count > 0)
324 kaklik 164
026E            label268438603
165
026E  5007      	MOVF main_1_count+D'3', W
166
0270  0800      	SUBLW 0x00
167
0272  E108      	BNZ	label268438604
168
0274  5006      	MOVF main_1_count+D'2', W
169
0276  0800      	SUBLW 0x00
170
0278  E105      	BNZ	label268438604
171
027A  5005      	MOVF main_1_count+D'1', W
172
027C  0800      	SUBLW 0x00
173
027E  E102      	BNZ	label268438604
174
0280  5004      	MOVF main_1_count, W
175
0282  0800      	SUBLW 0x00
176
0284            label268438604
177
0284  BE07      	BTFSC main_1_count+D'3',7
178
0286  80D8      	BSF STATUS,C
179
0288  E24A      	BC	label268438608
318 kaklik 180
 
322 kaklik 181
		count = count -1
324 kaklik 182
028A  0E01      	MOVLW 0x01
183
028C  5C04      	SUBWF main_1_count, W
184
028E  6E09      	MOVWF CompTempVar492
185
0290  0E00      	MOVLW 0x00
186
0292  6E0A      	MOVWF CompTempVar496
187
0294  A0D8      	BTFSS STATUS,C
188
0296  3C0A      	INCFSZ CompTempVar496, W
189
0298  5E05      	SUBWF main_1_count+D'1', F
190
029A  0E00      	MOVLW 0x00
191
029C  6E0A      	MOVWF CompTempVar496
192
029E  A0D8      	BTFSS STATUS,C
193
02A0  3C0A      	INCFSZ CompTempVar496, W
194
02A2  5E06      	SUBWF main_1_count+D'2', F
195
02A4  0E00      	MOVLW 0x00
196
02A6  6E0A      	MOVWF CompTempVar496
197
02A8  A0D8      	BTFSS STATUS,C
198
02AA  3C0A      	INCFSZ CompTempVar496, W
199
02AC  5E07      	SUBWF main_1_count+D'3', F
200
02AE  5009      	MOVF CompTempVar492, W
201
02B0  6E04      	MOVWF main_1_count
318 kaklik 202
 
322 kaklik 203
 
204
		if count < 300000 then
324 kaklik 205
02B2  0E00      	MOVLW 0x00
206
02B4  5C07      	SUBWF main_1_count+D'3', W
207
02B6  E108      	BNZ	label268438620
208
02B8  0E04      	MOVLW 0x04
209
02BA  5C06      	SUBWF main_1_count+D'2', W
210
02BC  E105      	BNZ	label268438620
211
02BE  0E93      	MOVLW 0x93
212
02C0  5C05      	SUBWF main_1_count+D'1', W
213
02C2  E102      	BNZ	label268438620
214
02C4  0EE0      	MOVLW 0xE0
215
02C6  5C04      	SUBWF main_1_count, W
216
02C8            label268438620
217
02C8  E302      	BNC	label4026532500
218
02CA  AE07      	BTFSS main_1_count+D'3',7
219
02CC  D003      	BRA	label268438624
220
02CE            label4026532500
221
02D4            label268438624
222
 
322 kaklik 223
			leds = leds | 1
324 kaklik 224
02CE  0E01      	MOVLW 0x01
225
02D0  1003      	IORWF main_1_leds, W
226
02D2  6E03      	MOVWF main_1_leds
318 kaklik 227
 
322 kaklik 228
		end if
229
		if count < 200000 then
324 kaklik 230
02D4  0E00      	MOVLW 0x00
231
02D6  5C07      	SUBWF main_1_count+D'3', W
232
02D8  E108      	BNZ	label268438626
233
02DA  0E03      	MOVLW 0x03
234
02DC  5C06      	SUBWF main_1_count+D'2', W
235
02DE  E105      	BNZ	label268438626
236
02E0  0E0D      	MOVLW 0x0D
237
02E2  5C05      	SUBWF main_1_count+D'1', W
238
02E4  E102      	BNZ	label268438626
239
02E6  0E40      	MOVLW 0x40
240
02E8  5C04      	SUBWF main_1_count, W
241
02EA            label268438626
242
02EA  E302      	BNC	label4026532501
243
02EC  AE07      	BTFSS main_1_count+D'3',7
244
02EE  D003      	BRA	label268438630
245
02F0            label4026532501
246
02F6            label268438630
247
 
322 kaklik 248
			leds = leds | 2
324 kaklik 249
02F0  0E02      	MOVLW 0x02
250
02F2  1003      	IORWF main_1_leds, W
251
02F4  6E03      	MOVWF main_1_leds
318 kaklik 252
 
322 kaklik 253
		end if
254
		if count < 100000 then
324 kaklik 255
02F6  0E00      	MOVLW 0x00
256
02F8  5C07      	SUBWF main_1_count+D'3', W
257
02FA  E108      	BNZ	label268438632
258
02FC  0E01      	MOVLW 0x01
259
02FE  5C06      	SUBWF main_1_count+D'2', W
260
0300  E105      	BNZ	label268438632
261
0302  0E86      	MOVLW 0x86
262
0304  5C05      	SUBWF main_1_count+D'1', W
263
0306  E102      	BNZ	label268438632
264
0308  0EA0      	MOVLW 0xA0
265
030A  5C04      	SUBWF main_1_count, W
266
030C            label268438632
267
030C  E302      	BNC	label4026532502
268
030E  AE07      	BTFSS main_1_count+D'3',7
269
0310  D003      	BRA	label268438636
270
0312            label4026532502
271
0318            label268438636
272
 
322 kaklik 273
			leds = leds | 4
324 kaklik 274
0312  0E04      	MOVLW 0x04
275
0314  1003      	IORWF main_1_leds, W
276
0316  6E03      	MOVWF main_1_leds
318 kaklik 277
 
322 kaklik 278
		end if
279
		lata = leds
324 kaklik 280
0318  5003      	MOVF main_1_leds, W
281
031A  6E89      	MOVWF gbl_lata
318 kaklik 282
 
322 kaklik 283
	loop
324 kaklik 284
031C  D7A8      	BRA	label268438603
285
031E            label268438608
318 kaklik 286
 
322 kaklik 287
	lata = 0xFF
324 kaklik 288
031E  6889      	SETF gbl_lata
318 kaklik 289
 
322 kaklik 290
 
318 kaklik 291
 
321 kaklik 292
Do while 1
324 kaklik 293
0320            label268438640
318 kaklik 294
 
295
 
321 kaklik 296
  sensors =0xFF 
324 kaklik 297
0320  6802      	SETF main_1_sensors
318 kaklik 298
 
321 kaklik 299
  sensors = Call receive()	'prijmi stav cidel senzoru
324 kaklik 300
0322  EC07F001  	CALL receive_00000
301
0326  5009      	MOVF CompTempVarRet489, W
302
0328  6E02      	MOVWF main_1_sensors
318 kaklik 303
 
304
 
321 kaklik 305
  If (!((sensors.0) and (sensors.1))) Then
324 kaklik 306
032A  6A08      	CLRF CompTempVar491
307
032C  A202      	BTFSS main_1_sensors,1
308
032E  D003      	BRA	label268438645
309
0330  A002      	BTFSS main_1_sensors,0
310
0332  D001      	BRA	label268438645
311
0334  2A08      	INCF CompTempVar491, F
312
0336            label268438645
313
0336  5208      	MOVF CompTempVar491, F
314
0338  E102      	BNZ	label268438646
315
033E            label268438646
318 kaklik 316
 
321 kaklik 317
    motors = 0x77
324 kaklik 318
033A  0E77      	MOVLW 0x77
319
033C  6E01      	MOVWF main_1_motors
318 kaklik 320
 
321 kaklik 321
  End If
322
 
323
  If (!(sensors.2)) Then
324 kaklik 324
033E  B402      	BTFSC main_1_sensors,2
325
0340  D002      	BRA	label268438649
326
0346            label268438649
318 kaklik 327
 
321 kaklik 328
    motors = 0xF7
324 kaklik 329
0342  0EF7      	MOVLW 0xF7
330
0344  6E01      	MOVWF main_1_motors
318 kaklik 331
 
321 kaklik 332
  End If
318 kaklik 333
 
321 kaklik 334
  If (!(sensors.3)) Then
324 kaklik 335
0346  B602      	BTFSC main_1_sensors,3
336
0348  D002      	BRA	label268438652
337
034E            label268438652
318 kaklik 338
 
321 kaklik 339
    motors = 0x7F
324 kaklik 340
034A  0E7F      	MOVLW 0x7F
341
034C  6E01      	MOVWF main_1_motors
318 kaklik 342
 
321 kaklik 343
  End If 
344
 
345
  lata = sensors
324 kaklik 346
034E  5002      	MOVF main_1_sensors, W
347
0350  6E89      	MOVWF gbl_lata
318 kaklik 348
 
321 kaklik 349
  call send(motors)
324 kaklik 350
0352  5001      	MOVF main_1_motors, W
351
0354  6E09      	MOVWF send_00000_arg_c
352
0356  EC02F001  	CALL send_00000
318 kaklik 353
 
354
 
321 kaklik 355
Loop
324 kaklik 356
035A  D7E2      	BRA	label268438640
318 kaklik 357
 
321 kaklik 358
 
359
End Sub
318 kaklik 360
 
361
 
321 kaklik 362
////////////////////////////////////////
363
// Code with no source :-)
364
////////////////////////////////////////
324 kaklik 365
0200  EFAEF001  	GOTO	_startup
318 kaklik 366
 
367
 
324 kaklik 368
035C            _startup
369
035C  EF10F001  	GOTO	main
318 kaklik 370
 
371
300000  FEFF      	DW 0xFEFF
372
300002  FEF6      	DW 0xFEF6
373
300004  FEFF      	DW 0xFEFF
374
300006  FFFB      	DW 0xFFFB
375
300008  3FF0      	DW 0x3FF0
376
30000A  9FFF      	DW 0x9FFF
377
30000C  BFFF      	DW 0xBFFF