Subversion Repositories svnkaklik

Rev

Rev 324 | 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
325 kaklik 48
021C  6E0D      	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
325 kaklik 63
0208  500D      	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
325 kaklik 77
	Dim cas As Long
318 kaklik 78
	Dim i As Long
79
 
80
	'NASTAVENI IO
81
	lata=0xFF
322 kaklik 82
0220  6889      	SETF gbl_lata
318 kaklik 83
 
84
	latb=0
322 kaklik 85
0222  6A8A      	CLRF gbl_latb
318 kaklik 86
 
87
	latc=0xFF
322 kaklik 88
0224  688B      	SETF gbl_latc
318 kaklik 89
 
90
	trisa=0xF0
322 kaklik 91
0226  0EF0      	MOVLW 0xF0
92
0228  6E92      	MOVWF gbl_trisa
318 kaklik 93
 
94
	trisb=0x3F
322 kaklik 95
022A  0E3F      	MOVLW 0x3F
96
022C  6E93      	MOVWF gbl_trisb
318 kaklik 97
 
98
	trisc=0x9F
322 kaklik 99
022E  0E9F      	MOVLW 0x9F
100
0230  6E94      	MOVWF gbl_trisc
318 kaklik 101
 
102
 
103
	'VYPNOUT ADC
104
	adcon1=0xC6
322 kaklik 105
0232  0EC6      	MOVLW 0xC6
106
0234  6EC1      	MOVWF gbl_adcon1
318 kaklik 107
 
108
	adcon0=0xC0
322 kaklik 109
0236  0EC0      	MOVLW 0xC0
110
0238  6EC2      	MOVWF gbl_adcon0
318 kaklik 111
 
112
 
113
	'UART 9600bps
114
	spbrg=64
322 kaklik 115
023A  0E40      	MOVLW 0x40
116
023C  6EAF      	MOVWF gbl_spbrg
318 kaklik 117
 
118
	txsta = txsta & ~(1 << BRGH)
322 kaklik 119
023E  0EFB      	MOVLW 0xFB
120
0240  14AC      	ANDWF gbl_txsta, W
121
0242  6EAC      	MOVWF gbl_txsta
318 kaklik 122
 
123
	txsta = txsta | (1 << TXEN)
322 kaklik 124
0244  0E20      	MOVLW 0x20
125
0246  10AC      	IORWF gbl_txsta, W
126
0248  6EAC      	MOVWF gbl_txsta
318 kaklik 127
 
128
	rcsta = rcsta | (1 << CREN)
322 kaklik 129
024A  0E10      	MOVLW 0x10
130
024C  10AB      	IORWF gbl_rcsta, W
131
024E  6EAB      	MOVWF gbl_rcsta
318 kaklik 132
 
133
	rcsta = rcsta | (1 << SPEN)
322 kaklik 134
0250  0E80      	MOVLW 0x80
135
0252  10AB      	IORWF gbl_rcsta, W
136
0254  6EAB      	MOVWF gbl_rcsta
318 kaklik 137
 
138
 
321 kaklik 139
	motors = 0x00
322 kaklik 140
0256  6A01      	CLRF main_1_motors
321 kaklik 141
 
322 kaklik 142
 
143
    do while (portb.0 = 1)
325 kaklik 144
0258            label268438599
322 kaklik 145
0258  B081      	BTFSC gbl_portb,0
325 kaklik 146
025A  D7FE      	BRA	label268438599
318 kaklik 147
 
322 kaklik 148
	loop
318 kaklik 149
 
322 kaklik 150
	leds = 0xF0
151
025C  0EF0      	MOVLW 0xF0
152
025E  6E03      	MOVWF main_1_leds
318 kaklik 153
 
322 kaklik 154
	count = 400000
155
0260  0E80      	MOVLW 0x80
156
0262  6E04      	MOVWF main_1_count
324 kaklik 157
0264  0E1A      	MOVLW 0x1A
158
0266  6E05      	MOVWF main_1_count+D'1'
159
0268  0E06      	MOVLW 0x06
160
026A  6E06      	MOVWF main_1_count+D'2'
161
026C  6A07      	CLRF main_1_count+D'3'
318 kaklik 162
 
322 kaklik 163
 
164
	do while (count > 0)
325 kaklik 165
026E            label268438604
324 kaklik 166
026E  5007      	MOVF main_1_count+D'3', W
167
0270  0800      	SUBLW 0x00
325 kaklik 168
0272  E108      	BNZ	label268438605
324 kaklik 169
0274  5006      	MOVF main_1_count+D'2', W
170
0276  0800      	SUBLW 0x00
325 kaklik 171
0278  E105      	BNZ	label268438605
324 kaklik 172
027A  5005      	MOVF main_1_count+D'1', W
173
027C  0800      	SUBLW 0x00
325 kaklik 174
027E  E102      	BNZ	label268438605
324 kaklik 175
0280  5004      	MOVF main_1_count, W
176
0282  0800      	SUBLW 0x00
325 kaklik 177
0284            label268438605
324 kaklik 178
0284  BE07      	BTFSC main_1_count+D'3',7
179
0286  80D8      	BSF STATUS,C
325 kaklik 180
0288  E24A      	BC	label268438609
318 kaklik 181
 
322 kaklik 182
		count = count -1
324 kaklik 183
028A  0E01      	MOVLW 0x01
184
028C  5C04      	SUBWF main_1_count, W
325 kaklik 185
028E  6E0D      	MOVWF CompTempVar492
324 kaklik 186
0290  0E00      	MOVLW 0x00
325 kaklik 187
0292  6E0E      	MOVWF CompTempVar496
324 kaklik 188
0294  A0D8      	BTFSS STATUS,C
325 kaklik 189
0296  3C0E      	INCFSZ CompTempVar496, W
324 kaklik 190
0298  5E05      	SUBWF main_1_count+D'1', F
191
029A  0E00      	MOVLW 0x00
325 kaklik 192
029C  6E0E      	MOVWF CompTempVar496
324 kaklik 193
029E  A0D8      	BTFSS STATUS,C
325 kaklik 194
02A0  3C0E      	INCFSZ CompTempVar496, W
324 kaklik 195
02A2  5E06      	SUBWF main_1_count+D'2', F
196
02A4  0E00      	MOVLW 0x00
325 kaklik 197
02A6  6E0E      	MOVWF CompTempVar496
324 kaklik 198
02A8  A0D8      	BTFSS STATUS,C
325 kaklik 199
02AA  3C0E      	INCFSZ CompTempVar496, W
324 kaklik 200
02AC  5E07      	SUBWF main_1_count+D'3', F
325 kaklik 201
02AE  500D      	MOVF CompTempVar492, W
324 kaklik 202
02B0  6E04      	MOVWF main_1_count
318 kaklik 203
 
322 kaklik 204
 
205
		if count < 300000 then
324 kaklik 206
02B2  0E00      	MOVLW 0x00
207
02B4  5C07      	SUBWF main_1_count+D'3', W
325 kaklik 208
02B6  E108      	BNZ	label268438621
324 kaklik 209
02B8  0E04      	MOVLW 0x04
210
02BA  5C06      	SUBWF main_1_count+D'2', W
325 kaklik 211
02BC  E105      	BNZ	label268438621
324 kaklik 212
02BE  0E93      	MOVLW 0x93
213
02C0  5C05      	SUBWF main_1_count+D'1', W
325 kaklik 214
02C2  E102      	BNZ	label268438621
324 kaklik 215
02C4  0EE0      	MOVLW 0xE0
216
02C6  5C04      	SUBWF main_1_count, W
325 kaklik 217
02C8            label268438621
218
02C8  E302      	BNC	label4026532557
324 kaklik 219
02CA  AE07      	BTFSS main_1_count+D'3',7
325 kaklik 220
02CC  D003      	BRA	label268438625
221
02CE            label4026532557
222
02D4            label268438625
324 kaklik 223
 
322 kaklik 224
			leds = leds | 1
324 kaklik 225
02CE  0E01      	MOVLW 0x01
226
02D0  1003      	IORWF main_1_leds, W
227
02D2  6E03      	MOVWF main_1_leds
318 kaklik 228
 
322 kaklik 229
		end if
230
		if count < 200000 then
324 kaklik 231
02D4  0E00      	MOVLW 0x00
232
02D6  5C07      	SUBWF main_1_count+D'3', W
325 kaklik 233
02D8  E108      	BNZ	label268438627
324 kaklik 234
02DA  0E03      	MOVLW 0x03
235
02DC  5C06      	SUBWF main_1_count+D'2', W
325 kaklik 236
02DE  E105      	BNZ	label268438627
324 kaklik 237
02E0  0E0D      	MOVLW 0x0D
238
02E2  5C05      	SUBWF main_1_count+D'1', W
325 kaklik 239
02E4  E102      	BNZ	label268438627
324 kaklik 240
02E6  0E40      	MOVLW 0x40
241
02E8  5C04      	SUBWF main_1_count, W
325 kaklik 242
02EA            label268438627
243
02EA  E302      	BNC	label4026532558
324 kaklik 244
02EC  AE07      	BTFSS main_1_count+D'3',7
325 kaklik 245
02EE  D003      	BRA	label268438631
246
02F0            label4026532558
247
02F6            label268438631
324 kaklik 248
 
322 kaklik 249
			leds = leds | 2
324 kaklik 250
02F0  0E02      	MOVLW 0x02
251
02F2  1003      	IORWF main_1_leds, W
252
02F4  6E03      	MOVWF main_1_leds
318 kaklik 253
 
322 kaklik 254
		end if
255
		if count < 100000 then
324 kaklik 256
02F6  0E00      	MOVLW 0x00
257
02F8  5C07      	SUBWF main_1_count+D'3', W
325 kaklik 258
02FA  E108      	BNZ	label268438633
324 kaklik 259
02FC  0E01      	MOVLW 0x01
260
02FE  5C06      	SUBWF main_1_count+D'2', W
325 kaklik 261
0300  E105      	BNZ	label268438633
324 kaklik 262
0302  0E86      	MOVLW 0x86
263
0304  5C05      	SUBWF main_1_count+D'1', W
325 kaklik 264
0306  E102      	BNZ	label268438633
324 kaklik 265
0308  0EA0      	MOVLW 0xA0
266
030A  5C04      	SUBWF main_1_count, W
325 kaklik 267
030C            label268438633
268
030C  E302      	BNC	label4026532559
324 kaklik 269
030E  AE07      	BTFSS main_1_count+D'3',7
325 kaklik 270
0310  D003      	BRA	label268438637
271
0312            label4026532559
272
0318            label268438637
324 kaklik 273
 
322 kaklik 274
			leds = leds | 4
324 kaklik 275
0312  0E04      	MOVLW 0x04
276
0314  1003      	IORWF main_1_leds, W
277
0316  6E03      	MOVWF main_1_leds
318 kaklik 278
 
322 kaklik 279
		end if
280
		lata = leds
324 kaklik 281
0318  5003      	MOVF main_1_leds, W
282
031A  6E89      	MOVWF gbl_lata
318 kaklik 283
 
322 kaklik 284
	loop
325 kaklik 285
031C  D7A8      	BRA	label268438604
286
031E            label268438609
318 kaklik 287
 
322 kaklik 288
	lata = 0xFF
324 kaklik 289
031E  6889      	SETF gbl_lata
318 kaklik 290
 
322 kaklik 291
 
318 kaklik 292
 
321 kaklik 293
Do while 1
325 kaklik 294
0320            label268438641
318 kaklik 295
 
325 kaklik 296
  cas = 0
297
0320  6A08      	CLRF main_1_cas
298
0322  6A09      	CLRF main_1_cas+D'1'
299
0324  6A0A      	CLRF main_1_cas+D'2'
300
0326  6A0B      	CLRF main_1_cas+D'3'
318 kaklik 301
 
321 kaklik 302
  sensors =0xFF 
325 kaklik 303
0328  6802      	SETF main_1_sensors
318 kaklik 304
 
321 kaklik 305
  sensors = Call receive()	'prijmi stav cidel senzoru
325 kaklik 306
032A  EC07F001  	CALL receive_00000
307
032E  500D      	MOVF CompTempVarRet489, W
308
0330  6E02      	MOVWF main_1_sensors
318 kaklik 309
 
310
 
321 kaklik 311
  If (!((sensors.0) and (sensors.1))) Then
325 kaklik 312
0332  6A0C      	CLRF CompTempVar491
313
0334  A202      	BTFSS main_1_sensors,1
314
0336  D003      	BRA	label268438647
315
0338  A002      	BTFSS main_1_sensors,0
316
033A  D001      	BRA	label268438647
317
033C  2A0C      	INCF CompTempVar491, F
318
033E            label268438647
319
033E  520C      	MOVF CompTempVar491, F
320
0340  E102      	BNZ	label268438648
321
0346            label268438648
318 kaklik 322
 
321 kaklik 323
    motors = 0x77
325 kaklik 324
0342  0E77      	MOVLW 0x77
325
0344  6E01      	MOVWF main_1_motors
318 kaklik 326
 
321 kaklik 327
  End If
328
 
329
  If (!(sensors.2)) Then
325 kaklik 330
0346  B402      	BTFSC main_1_sensors,2
331
0348  D01B      	BRA	label268438651
332
0380            label268438651
318 kaklik 333
 
325 kaklik 334
    If cas< 400000 Then
335
034A  0E00      	MOVLW 0x00
336
034C  5C0B      	SUBWF main_1_cas+D'3', W
337
034E  E108      	BNZ	label268438653
338
0350  0E06      	MOVLW 0x06
339
0352  5C0A      	SUBWF main_1_cas+D'2', W
340
0354  E105      	BNZ	label268438653
341
0356  0E1A      	MOVLW 0x1A
342
0358  5C09      	SUBWF main_1_cas+D'1', W
343
035A  E102      	BNZ	label268438653
344
035C  0E80      	MOVLW 0x80
345
035E  5C08      	SUBWF main_1_cas, W
346
0360            label268438653
347
0360  E302      	BNC	label4026532563
348
0362  AE0B      	BTFSS main_1_cas+D'3',7
349
0364  D007      	BRA	label4026532566
350
0366            label4026532563
351
 
352
      cas = cas + 1
353
0366  2A08      	INCF main_1_cas, F
354
0368  B4D8      	BTFSC STATUS,Z
355
036A  2A09      	INCF main_1_cas+D'1', F
356
036C  B4D8      	BTFSC STATUS,Z
357
036E  2A0A      	INCF main_1_cas+D'2', F
358
0370  B4D8      	BTFSC STATUS,Z
359
0372  2A0B      	INCF main_1_cas+D'3', F
360
0374            label4026532566
361
 
362
    End If
363
    cas = 0
364
0374  6A08      	CLRF main_1_cas
365
0376  6A09      	CLRF main_1_cas+D'1'
366
0378  6A0A      	CLRF main_1_cas+D'2'
367
037A  6A0B      	CLRF main_1_cas+D'3'
368
 
321 kaklik 369
    motors = 0xF7
325 kaklik 370
037C  0EF7      	MOVLW 0xF7
371
037E  6E01      	MOVWF main_1_motors
318 kaklik 372
 
321 kaklik 373
  End If
318 kaklik 374
 
321 kaklik 375
  If (!(sensors.3)) Then
325 kaklik 376
0380  B602      	BTFSC main_1_sensors,3
377
0382  D01B      	BRA	label268438668
378
03BA            label268438668
318 kaklik 379
 
325 kaklik 380
    If cas< 400000 Then
381
0384  0E00      	MOVLW 0x00
382
0386  5C0B      	SUBWF main_1_cas+D'3', W
383
0388  E108      	BNZ	label268438670
384
038A  0E06      	MOVLW 0x06
385
038C  5C0A      	SUBWF main_1_cas+D'2', W
386
038E  E105      	BNZ	label268438670
387
0390  0E1A      	MOVLW 0x1A
388
0392  5C09      	SUBWF main_1_cas+D'1', W
389
0394  E102      	BNZ	label268438670
390
0396  0E80      	MOVLW 0x80
391
0398  5C08      	SUBWF main_1_cas, W
392
039A            label268438670
393
039A  E302      	BNC	label4026532568
394
039C  AE0B      	BTFSS main_1_cas+D'3',7
395
039E  D007      	BRA	label4026532571
396
03A0            label4026532568
397
 
398
      cas = cas + 1
399
03A0  2A08      	INCF main_1_cas, F
400
03A2  B4D8      	BTFSC STATUS,Z
401
03A4  2A09      	INCF main_1_cas+D'1', F
402
03A6  B4D8      	BTFSC STATUS,Z
403
03A8  2A0A      	INCF main_1_cas+D'2', F
404
03AA  B4D8      	BTFSC STATUS,Z
405
03AC  2A0B      	INCF main_1_cas+D'3', F
406
03AE            label4026532571
407
 
408
    End If
409
    cas = 0
410
03AE  6A08      	CLRF main_1_cas
411
03B0  6A09      	CLRF main_1_cas+D'1'
412
03B2  6A0A      	CLRF main_1_cas+D'2'
413
03B4  6A0B      	CLRF main_1_cas+D'3'
414
 
321 kaklik 415
    motors = 0x7F
325 kaklik 416
03B6  0E7F      	MOVLW 0x7F
417
03B8  6E01      	MOVWF main_1_motors
318 kaklik 418
 
321 kaklik 419
  End If 
325 kaklik 420
 
421
  cas = cas+1			
422
03BA  2A08      	INCF main_1_cas, F
423
03BC  B4D8      	BTFSC STATUS,Z
424
03BE  2A09      	INCF main_1_cas+D'1', F
425
03C0  B4D8      	BTFSC STATUS,Z
426
03C2  2A0A      	INCF main_1_cas+D'2', F
427
03C4  B4D8      	BTFSC STATUS,Z
428
03C6  2A0B      	INCF main_1_cas+D'3', F
429
 
321 kaklik 430
  lata = sensors
325 kaklik 431
03C8  5002      	MOVF main_1_sensors, W
432
03CA  6E89      	MOVWF gbl_lata
318 kaklik 433
 
321 kaklik 434
  call send(motors)
325 kaklik 435
03CC  5001      	MOVF main_1_motors, W
436
03CE  6E0D      	MOVWF send_00000_arg_c
437
03D0  EC02F001  	CALL send_00000
318 kaklik 438
 
439
 
321 kaklik 440
Loop
325 kaklik 441
03D4  D7A5      	BRA	label268438641
318 kaklik 442
 
321 kaklik 443
 
444
End Sub
318 kaklik 445
 
446
 
321 kaklik 447
////////////////////////////////////////
448
// Code with no source :-)
449
////////////////////////////////////////
325 kaklik 450
0200  EFEBF001  	GOTO	_startup
318 kaklik 451
 
452
 
325 kaklik 453
03D6            _startup
454
03D6  EF10F001  	GOTO	main
318 kaklik 455
 
456
300000  FEFF      	DW 0xFEFF
457
300002  FEF6      	DW 0xFEF6
458
300004  FEFF      	DW 0xFEFF
459
300006  FFFB      	DW 0xFFFB
460
300008  3FF0      	DW 0x3FF0
461
30000A  9FFF      	DW 0x9FFF
462
30000C  BFFF      	DW 0xBFFF