Subversion Repositories svnkaklik

Rev

Rev 324 | Go to most recent revision | 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  6E0D              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  500D              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 Long
        Dim cas As Long
        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            label268438599
0258  B081              BTFSC gbl_portb,0
025A  D7FE              BRA     label268438599

        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
0264  0E1A              MOVLW 0x1A
0266  6E05              MOVWF main_1_count+D'1'
0268  0E06              MOVLW 0x06
026A  6E06              MOVWF main_1_count+D'2'
026C  6A07              CLRF main_1_count+D'3'

        
        do while (count > 0)
026E            label268438604
026E  5007              MOVF main_1_count+D'3', W
0270  0800              SUBLW 0x00
0272  E108              BNZ     label268438605
0274  5006              MOVF main_1_count+D'2', W
0276  0800              SUBLW 0x00
0278  E105              BNZ     label268438605
027A  5005              MOVF main_1_count+D'1', W
027C  0800              SUBLW 0x00
027E  E102              BNZ     label268438605
0280  5004              MOVF main_1_count, W
0282  0800              SUBLW 0x00
0284            label268438605
0284  BE07              BTFSC main_1_count+D'3',7
0286  80D8              BSF STATUS,C
0288  E24A              BC      label268438609

                count = count -1
028A  0E01              MOVLW 0x01
028C  5C04              SUBWF main_1_count, W
028E  6E0D              MOVWF CompTempVar492
0290  0E00              MOVLW 0x00
0292  6E0E              MOVWF CompTempVar496
0294  A0D8              BTFSS STATUS,C
0296  3C0E              INCFSZ CompTempVar496, W
0298  5E05              SUBWF main_1_count+D'1', F
029A  0E00              MOVLW 0x00
029C  6E0E              MOVWF CompTempVar496
029E  A0D8              BTFSS STATUS,C
02A0  3C0E              INCFSZ CompTempVar496, W
02A2  5E06              SUBWF main_1_count+D'2', F
02A4  0E00              MOVLW 0x00
02A6  6E0E              MOVWF CompTempVar496
02A8  A0D8              BTFSS STATUS,C
02AA  3C0E              INCFSZ CompTempVar496, W
02AC  5E07              SUBWF main_1_count+D'3', F
02AE  500D              MOVF CompTempVar492, W
02B0  6E04              MOVWF main_1_count

                
                if count < 300000 then
02B2  0E00              MOVLW 0x00
02B4  5C07              SUBWF main_1_count+D'3', W
02B6  E108              BNZ     label268438621
02B8  0E04              MOVLW 0x04
02BA  5C06              SUBWF main_1_count+D'2', W
02BC  E105              BNZ     label268438621
02BE  0E93              MOVLW 0x93
02C0  5C05              SUBWF main_1_count+D'1', W
02C2  E102              BNZ     label268438621
02C4  0EE0              MOVLW 0xE0
02C6  5C04              SUBWF main_1_count, W
02C8            label268438621
02C8  E302              BNC     label4026532557
02CA  AE07              BTFSS main_1_count+D'3',7
02CC  D003              BRA     label268438625
02CE            label4026532557
02D4            label268438625

                        leds = leds | 1
02CE  0E01              MOVLW 0x01
02D0  1003              IORWF main_1_leds, W
02D2  6E03              MOVWF main_1_leds

                end if
                if count < 200000 then
02D4  0E00              MOVLW 0x00
02D6  5C07              SUBWF main_1_count+D'3', W
02D8  E108              BNZ     label268438627
02DA  0E03              MOVLW 0x03
02DC  5C06              SUBWF main_1_count+D'2', W
02DE  E105              BNZ     label268438627
02E0  0E0D              MOVLW 0x0D
02E2  5C05              SUBWF main_1_count+D'1', W
02E4  E102              BNZ     label268438627
02E6  0E40              MOVLW 0x40
02E8  5C04              SUBWF main_1_count, W
02EA            label268438627
02EA  E302              BNC     label4026532558
02EC  AE07              BTFSS main_1_count+D'3',7
02EE  D003              BRA     label268438631
02F0            label4026532558
02F6            label268438631

                        leds = leds | 2
02F0  0E02              MOVLW 0x02
02F2  1003              IORWF main_1_leds, W
02F4  6E03              MOVWF main_1_leds

                end if
                if count < 100000 then
02F6  0E00              MOVLW 0x00
02F8  5C07              SUBWF main_1_count+D'3', W
02FA  E108              BNZ     label268438633
02FC  0E01              MOVLW 0x01
02FE  5C06              SUBWF main_1_count+D'2', W
0300  E105              BNZ     label268438633
0302  0E86              MOVLW 0x86
0304  5C05              SUBWF main_1_count+D'1', W
0306  E102              BNZ     label268438633
0308  0EA0              MOVLW 0xA0
030A  5C04              SUBWF main_1_count, W
030C            label268438633
030C  E302              BNC     label4026532559
030E  AE07              BTFSS main_1_count+D'3',7
0310  D003              BRA     label268438637
0312            label4026532559
0318            label268438637

                        leds = leds | 4
0312  0E04              MOVLW 0x04
0314  1003              IORWF main_1_leds, W
0316  6E03              MOVWF main_1_leds

                end if
                lata = leds
0318  5003              MOVF main_1_leds, W
031A  6E89              MOVWF gbl_lata

        loop
031C  D7A8              BRA     label268438604
031E            label268438609

        lata = 0xFF
031E  6889              SETF gbl_lata


                
Do while 1
0320            label268438641

  cas = 0
0320  6A08              CLRF main_1_cas
0322  6A09              CLRF main_1_cas+D'1'
0324  6A0A              CLRF main_1_cas+D'2'
0326  6A0B              CLRF main_1_cas+D'3'

  sensors =0xFF 
0328  6802              SETF main_1_sensors

  sensors = Call receive()      'prijmi stav cidel senzoru
032A  EC07F001          CALL receive_00000
032E  500D              MOVF CompTempVarRet489, W
0330  6E02              MOVWF main_1_sensors

                
  If (!((sensors.0) and (sensors.1))) Then
0332  6A0C              CLRF CompTempVar491
0334  A202              BTFSS main_1_sensors,1
0336  D003              BRA     label268438647
0338  A002              BTFSS main_1_sensors,0
033A  D001              BRA     label268438647
033C  2A0C              INCF CompTempVar491, F
033E            label268438647
033E  520C              MOVF CompTempVar491, F
0340  E102              BNZ     label268438648
0346            label268438648

    motors = 0x77
0342  0E77              MOVLW 0x77
0344  6E01              MOVWF main_1_motors

  End If
                        
  If (!(sensors.2)) Then
0346  B402              BTFSC main_1_sensors,2
0348  D01B              BRA     label268438651
0380            label268438651

    If cas< 400000 Then
034A  0E00              MOVLW 0x00
034C  5C0B              SUBWF main_1_cas+D'3', W
034E  E108              BNZ     label268438653
0350  0E06              MOVLW 0x06
0352  5C0A              SUBWF main_1_cas+D'2', W
0354  E105              BNZ     label268438653
0356  0E1A              MOVLW 0x1A
0358  5C09              SUBWF main_1_cas+D'1', W
035A  E102              BNZ     label268438653
035C  0E80              MOVLW 0x80
035E  5C08              SUBWF main_1_cas, W
0360            label268438653
0360  E302              BNC     label4026532563
0362  AE0B              BTFSS main_1_cas+D'3',7
0364  D007              BRA     label4026532566
0366            label4026532563

      cas = cas + 1
0366  2A08              INCF main_1_cas, F
0368  B4D8              BTFSC STATUS,Z
036A  2A09              INCF main_1_cas+D'1', F
036C  B4D8              BTFSC STATUS,Z
036E  2A0A              INCF main_1_cas+D'2', F
0370  B4D8              BTFSC STATUS,Z
0372  2A0B              INCF main_1_cas+D'3', F
0374            label4026532566

    End If
    cas = 0
0374  6A08              CLRF main_1_cas
0376  6A09              CLRF main_1_cas+D'1'
0378  6A0A              CLRF main_1_cas+D'2'
037A  6A0B              CLRF main_1_cas+D'3'

    motors = 0xF7
037C  0EF7              MOVLW 0xF7
037E  6E01              MOVWF main_1_motors

  End If
                
  If (!(sensors.3)) Then
0380  B602              BTFSC main_1_sensors,3
0382  D01B              BRA     label268438668
03BA            label268438668

    If cas< 400000 Then
0384  0E00              MOVLW 0x00
0386  5C0B              SUBWF main_1_cas+D'3', W
0388  E108              BNZ     label268438670
038A  0E06              MOVLW 0x06
038C  5C0A              SUBWF main_1_cas+D'2', W
038E  E105              BNZ     label268438670
0390  0E1A              MOVLW 0x1A
0392  5C09              SUBWF main_1_cas+D'1', W
0394  E102              BNZ     label268438670
0396  0E80              MOVLW 0x80
0398  5C08              SUBWF main_1_cas, W
039A            label268438670
039A  E302              BNC     label4026532568
039C  AE0B              BTFSS main_1_cas+D'3',7
039E  D007              BRA     label4026532571
03A0            label4026532568

      cas = cas + 1
03A0  2A08              INCF main_1_cas, F
03A2  B4D8              BTFSC STATUS,Z
03A4  2A09              INCF main_1_cas+D'1', F
03A6  B4D8              BTFSC STATUS,Z
03A8  2A0A              INCF main_1_cas+D'2', F
03AA  B4D8              BTFSC STATUS,Z
03AC  2A0B              INCF main_1_cas+D'3', F
03AE            label4026532571

    End If
    cas = 0
03AE  6A08              CLRF main_1_cas
03B0  6A09              CLRF main_1_cas+D'1'
03B2  6A0A              CLRF main_1_cas+D'2'
03B4  6A0B              CLRF main_1_cas+D'3'

    motors = 0x7F
03B6  0E7F              MOVLW 0x7F
03B8  6E01              MOVWF main_1_motors

  End If 
        
  cas = cas+1                   
03BA  2A08              INCF main_1_cas, F
03BC  B4D8              BTFSC STATUS,Z
03BE  2A09              INCF main_1_cas+D'1', F
03C0  B4D8              BTFSC STATUS,Z
03C2  2A0A              INCF main_1_cas+D'2', F
03C4  B4D8              BTFSC STATUS,Z
03C6  2A0B              INCF main_1_cas+D'3', F

  lata = sensors
03C8  5002              MOVF main_1_sensors, W
03CA  6E89              MOVWF gbl_lata

  call send(motors)
03CC  5001              MOVF main_1_motors, W
03CE  6E0D              MOVWF send_00000_arg_c
03D0  EC02F001          CALL send_00000

                
Loop
03D4  D7A5              BRA     label268438641

        
End Sub


////////////////////////////////////////
// Code with no source :-)
////////////////////////////////////////
0200  EFEBF001          GOTO    _startup


03D6            _startup
03D6  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