Subversion Repositories svnkaklik

Rev

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