Subversion Repositories svnkaklik

Rev

Details | 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
48
021C  6E07      	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
322 kaklik 63
0208  5007      	MOVF send_00000_arg_c, W
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
76
	Dim count As word
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
156
0264  0E1A      	MOVLW 0x1A
157
0266  6E05      	MOVWF main_1_count+D'1'
318 kaklik 158
 
322 kaklik 159
 
160
	do while (count > 0)
161
0268            label268438603
162
0268  5004      	MOVF main_1_count, W
163
026A  0800      	SUBLW 0x00
164
026C  B0D8      	BTFSC STATUS,C
165
026E  5005      	MOVF main_1_count+D'1', W
166
0270  E013      	BZ	label268438605
318 kaklik 167
 
322 kaklik 168
		count = count -1
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
175
027E  6E04      	MOVWF main_1_count
318 kaklik 176
 
322 kaklik 177
 
178
		if count < 300000 then
179
			leds = leds | 1
180
0280  0E01      	MOVLW 0x01
181
0282  1003      	IORWF main_1_leds, W
182
0284  6E03      	MOVWF main_1_leds
318 kaklik 183
 
322 kaklik 184
		end if
185
		if count < 200000 then
186
			leds = leds | 2
187
0286  0E02      	MOVLW 0x02
188
0288  1003      	IORWF main_1_leds, W
189
028A  6E03      	MOVWF main_1_leds
318 kaklik 190
 
322 kaklik 191
		end if
192
		if count < 100000 then
193
			leds = leds | 4
194
028C  0E04      	MOVLW 0x04
195
028E  1003      	IORWF main_1_leds, W
196
0290  6E03      	MOVWF main_1_leds
318 kaklik 197
 
322 kaklik 198
		end if
199
		lata = leds
200
0292  5003      	MOVF main_1_leds, W
201
0294  6E89      	MOVWF gbl_lata
318 kaklik 202
 
322 kaklik 203
	loop
204
0296  D7E8      	BRA	label268438603
205
0298            label268438605
318 kaklik 206
 
322 kaklik 207
	leds = 0xFF
208
0298  6803      	SETF main_1_leds
318 kaklik 209
 
322 kaklik 210
	lata = 0xFF
211
029A  6889      	SETF gbl_lata
318 kaklik 212
 
322 kaklik 213
 
318 kaklik 214
 
321 kaklik 215
Do while 1
322 kaklik 216
029C            label268438623
318 kaklik 217
 
218
 
321 kaklik 219
  sensors =0xFF 
322 kaklik 220
029C  6802      	SETF main_1_sensors
318 kaklik 221
 
321 kaklik 222
  sensors = Call receive()	'prijmi stav cidel senzoru
322 kaklik 223
029E  EC07F001  	CALL receive_00000
224
02A2  5007      	MOVF CompTempVarRet489, W
225
02A4  6E02      	MOVWF main_1_sensors
318 kaklik 226
 
227
 
321 kaklik 228
  If (!((sensors.0) and (sensors.1))) Then
322 kaklik 229
02A6  6A06      	CLRF CompTempVar491
230
02A8  A202      	BTFSS main_1_sensors,1
231
02AA  D003      	BRA	label268438628
232
02AC  A002      	BTFSS main_1_sensors,0
233
02AE  D001      	BRA	label268438628
234
02B0  2A06      	INCF CompTempVar491, F
235
02B2            label268438628
236
02B2  5206      	MOVF CompTempVar491, F
237
02B4  E102      	BNZ	label268438629
238
02BA            label268438629
318 kaklik 239
 
321 kaklik 240
    motors = 0x77
322 kaklik 241
02B6  0E77      	MOVLW 0x77
242
02B8  6E01      	MOVWF main_1_motors
318 kaklik 243
 
321 kaklik 244
  End If
245
 
246
  If (!(sensors.2)) Then
322 kaklik 247
02BA  B402      	BTFSC main_1_sensors,2
248
02BC  D002      	BRA	label268438632
249
02C2            label268438632
318 kaklik 250
 
321 kaklik 251
    motors = 0xF7
322 kaklik 252
02BE  0EF7      	MOVLW 0xF7
253
02C0  6E01      	MOVWF main_1_motors
318 kaklik 254
 
321 kaklik 255
  End If
318 kaklik 256
 
321 kaklik 257
  If (!(sensors.3)) Then
322 kaklik 258
02C2  B602      	BTFSC main_1_sensors,3
259
02C4  D002      	BRA	label268438635
260
02CA            label268438635
318 kaklik 261
 
321 kaklik 262
    motors = 0x7F
322 kaklik 263
02C6  0E7F      	MOVLW 0x7F
264
02C8  6E01      	MOVWF main_1_motors
318 kaklik 265
 
321 kaklik 266
  End If 
267
 
268
  lata = sensors
322 kaklik 269
02CA  5002      	MOVF main_1_sensors, W
270
02CC  6E89      	MOVWF gbl_lata
318 kaklik 271
 
321 kaklik 272
  call send(motors)
322 kaklik 273
02CE  5001      	MOVF main_1_motors, W
274
02D0  6E07      	MOVWF send_00000_arg_c
275
02D2  EC02F001  	CALL send_00000
318 kaklik 276
 
277
 
321 kaklik 278
Loop
322 kaklik 279
02D6  D7E2      	BRA	label268438623
318 kaklik 280
 
321 kaklik 281
 
282
End Sub
318 kaklik 283
 
284
 
321 kaklik 285
////////////////////////////////////////
286
// Code with no source :-)
287
////////////////////////////////////////
322 kaklik 288
0200  EF6CF001  	GOTO	_startup
318 kaklik 289
 
290
 
322 kaklik 291
02D8            _startup
292
02D8  EF10F001  	GOTO	main
318 kaklik 293
 
294
300000  FEFF      	DW 0xFEFF
295
300002  FEF6      	DW 0xFEF6
296
300004  FEFF      	DW 0xFEFF
297
300006  FFFB      	DW 0xFFFB
298
300008  3FF0      	DW 0x3FF0
299
30000A  9FFF      	DW 0x9FFF
300
30000C  BFFF      	DW 0xBFFF