Rev 322 | Blame | Last modification | View Log | Download
;/////////////////////////////////////////////////////////////////////////////////
;// Code Generator: BoostBasic Compiler - http://www.sourceboost.com
;// Version : 6.70
;// License Type : Pro License
;// Limitations : PIC18 max code size:Unlimited, max RAM banks:Unlimited
;/////////////////////////////////////////////////////////////////////////////////
'robot
'#pragma DATA _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
#pragma DATA _CONFIG1H, _OSCS_OFF_1H & _HSPLL_OSC_1H
#pragma DATA _CONFIG2L, _BOR_ON_2L & _BORV_42_2L & _PWRT_ON_2L
#pragma DATA _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
#pragma DATA _CONFIG3H, _CCP2MX_OFF_3H
#pragma DATA _CONFIG4L, _STVR_ON_4L & _LVP_OFF_4L & _DEBUG_OFF_4L
#pragma DATA _CONFIG5L, _CP0_ON_5L & _CP1_ON_5L & _CP2_ON_5L & _CP3_ON_5L
#pragma DATA _CONFIG5H, _CPB_ON_5H & _CPD_ON_5H
#pragma DATA _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
#pragma DATA _CONFIG6H, _WRTC_ON_6H & _WRTB_ON_6H & _WRTD_OFF_6H
#pragma DATA _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L
#pragma DATA _CONFIG7H, _EBTRB_ON_7H
#pragma CLOCK_FREQ 40000000
Function receive() As Byte
If ( (rcsta.OERR = 1) ) Then
020E A2AB BTFSS gbl_rcsta,1
0210 D002 BRA label268438551
0216 label268438551
rcsta.CREN = 0
0212 98AB BCF gbl_rcsta,4
rcsta.CREN = 1
0214 88AB BSF gbl_rcsta,4
End If
Do While (pir1.RCIF = 0)
0216 AA9E BTFSS gbl_pir1,5
0218 D7FE BRA label268438551
Loop
receive = rcreg
021A 50AE MOVF gbl_rcreg, W
021C 6E06 MOVWF CompTempVarRet489
End Function
021E 0012 RETURN
Sub send(c As Byte)
Do while (pir1 & (1 << TXIF)) = 0 Loop
0204 label268438562
0204 A89E BTFSS gbl_pir1,4
0206 D7FE BRA label268438562
txreg = c
0208 5006 MOVF send_00000_arg_c, W
020A 6EAD MOVWF gbl_txreg
End Sub
020C 0012 RETURN
Sub main()
Dim motors As Byte
Dim sensors As Byte
Dim buttons As Byte
Dim leds As Byte
Dim count As Byte
Dim i As Long
'NASTAVENI IO
lata=0xFF
0220 6889 SETF gbl_lata
latb=0
0222 6A8A CLRF gbl_latb
latc=0xFF
0224 688B SETF gbl_latc
trisa=0xF0
0226 0EF0 MOVLW 0xF0
0228 6E92 MOVWF gbl_trisa
trisb=0x3F
022A 0E3F MOVLW 0x3F
022C 6E93 MOVWF gbl_trisb
trisc=0x9F
022E 0E9F MOVLW 0x9F
0230 6E94 MOVWF gbl_trisc
'VYPNOUT ADC
adcon1=0xC6
0232 0EC6 MOVLW 0xC6
0234 6EC1 MOVWF gbl_adcon1
adcon0=0xC0
0236 0EC0 MOVLW 0xC0
0238 6EC2 MOVWF gbl_adcon0
'UART 9600bps
spbrg=64
023A 0E40 MOVLW 0x40
023C 6EAF MOVWF gbl_spbrg
txsta = txsta & ~(1 << BRGH)
023E 0EFB MOVLW 0xFB
0240 14AC ANDWF gbl_txsta, W
0242 6EAC MOVWF gbl_txsta
txsta = txsta | (1 << TXEN)
0244 0E20 MOVLW 0x20
0246 10AC IORWF gbl_txsta, W
0248 6EAC MOVWF gbl_txsta
rcsta = rcsta | (1 << CREN)
024A 0E10 MOVLW 0x10
024C 10AB IORWF gbl_rcsta, W
024E 6EAB MOVWF gbl_rcsta
rcsta = rcsta | (1 << SPEN)
0250 0E80 MOVLW 0x80
0252 10AB IORWF gbl_rcsta, W
0254 6EAB MOVWF gbl_rcsta
motors = 0x00
0256 6A01 CLRF main_1_motors
do while (portb.0 = 1)
0258 label268438598
0258 B081 BTFSC gbl_portb,0
025A D7FE BRA label268438598
loop
leds = 0xF0
025C 0EF0 MOVLW 0xF0
025E 6E03 MOVWF main_1_leds
count = 400000
0260 0E80 MOVLW 0x80
0262 6E04 MOVWF main_1_count
do while (count > 0)
0264 label268438603
0264 5004 MOVF main_1_count, W
0266 0800 SUBLW 0x00
0268 E20E BC label268438604
count = count -1
026A 0404 DECF main_1_count, W
026C 6E04 MOVWF main_1_count
if count < 300000 then
leds = leds | 1
026E 0E01 MOVLW 0x01
0270 1003 IORWF main_1_leds, W
0272 6E03 MOVWF main_1_leds
end if
if count < 200000 then
leds = leds | 2
0274 0E02 MOVLW 0x02
0276 1003 IORWF main_1_leds, W
0278 6E03 MOVWF main_1_leds
end if
if count < 100000 then
leds = leds | 4
027A 0E04 MOVLW 0x04
027C 1003 IORWF main_1_leds, W
027E 6E03 MOVWF main_1_leds
end if
lata = leds
0280 5003 MOVF main_1_leds, W
0282 6E89 MOVWF gbl_lata
loop
0284 D7EF BRA label268438603
0286 label268438604
leds = 0xFF
0286 6803 SETF main_1_leds
lata = 0xFF
0288 6889 SETF gbl_lata
Do while 1
028A label268438619
sensors =0xFF
028A 6802 SETF main_1_sensors
sensors = Call receive() 'prijmi stav cidel senzoru
028C EC07F001 CALL receive_00000
0290 5006 MOVF CompTempVarRet489, W
0292 6E02 MOVWF main_1_sensors
If (!((sensors.0) and (sensors.1))) Then
0294 6A05 CLRF CompTempVar491
0296 A202 BTFSS main_1_sensors,1
0298 D003 BRA label268438624
029A A002 BTFSS main_1_sensors,0
029C D001 BRA label268438624
029E 2A05 INCF CompTempVar491, F
02A0 label268438624
02A0 5205 MOVF CompTempVar491, F
02A2 E102 BNZ label268438625
02A8 label268438625
motors = 0x77
02A4 0E77 MOVLW 0x77
02A6 6E01 MOVWF main_1_motors
End If
If (!(sensors.2)) Then
02A8 B402 BTFSC main_1_sensors,2
02AA D002 BRA label268438628
02B0 label268438628
motors = 0xF7
02AC 0EF7 MOVLW 0xF7
02AE 6E01 MOVWF main_1_motors
End If
If (!(sensors.3)) Then
02B0 B602 BTFSC main_1_sensors,3
02B2 D002 BRA label268438631
02B8 label268438631
motors = 0x7F
02B4 0E7F MOVLW 0x7F
02B6 6E01 MOVWF main_1_motors
End If
lata = sensors
02B8 5002 MOVF main_1_sensors, W
02BA 6E89 MOVWF gbl_lata
call send(motors)
02BC 5001 MOVF main_1_motors, W
02BE 6E06 MOVWF send_00000_arg_c
02C0 EC02F001 CALL send_00000
Loop
02C4 D7E2 BRA label268438619
End Sub
////////////////////////////////////////
// Code with no source :-)
////////////////////////////////////////
0200 EF63F001 GOTO _startup
02C6 _startup
02C6 EF10F001 GOTO main
300000 FEFF DW 0xFEFF
300002 FEF6 DW 0xFEF6
300004 FEFF DW 0xFEFF
300006 FFFB DW 0xFFFB
300008 3FF0 DW 0x3FF0
30000A 9FFF DW 0x9FFF
30000C BFFF DW 0xBFFF