Subversion Repositories svnkaklik

Rev

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