Subversion Repositories svnkaklik

Rev

Rev 320 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
318 kaklik 1
'robot
2
 
3
'#pragma DATA _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
4
 
5
 
6
#pragma DATA _CONFIG1H, _OSCS_OFF_1H & _HSPLL_OSC_1H
7
#pragma DATA _CONFIG2L, _BOR_ON_2L & _BORV_42_2L & _PWRT_ON_2L
8
#pragma DATA _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
9
#pragma DATA _CONFIG3H, _CCP2MX_OFF_3H
10
#pragma DATA _CONFIG4L, _STVR_ON_4L & _LVP_OFF_4L & _DEBUG_OFF_4L
11
#pragma DATA _CONFIG5L, _CP0_ON_5L & _CP1_ON_5L & _CP2_ON_5L & _CP3_ON_5L
12
#pragma DATA _CONFIG5H, _CPB_ON_5H & _CPD_ON_5H
13
#pragma DATA _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
14
#pragma DATA _CONFIG6H, _WRTC_ON_6H & _WRTB_ON_6H & _WRTD_OFF_6H
15
#pragma DATA _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L
16
#pragma DATA _CONFIG7H, _EBTRB_ON_7H
17
 
18
#pragma CLOCK_FREQ 40000000
19
 
20
Function receive() As Byte
21
	If ( (rcsta.OERR = 1) ) Then
22
		rcsta.CREN = 0
23
        rcsta.CREN = 1
24
	End If
25
    Do While (pir1.RCIF = 0)
26
	Loop
27
	receive = rcreg
28
 
29
End Function
30
 
31
Sub send(c As Byte)
32
	Do while (pir1 & (1 << TXIF)) = 0 Loop
33
	txreg = c
34
End Sub
35
 
321 kaklik 36
Sub delay(cas As Byte)
37
Dim i As Byte
38
Dim x As Byte
39
    Do while i <= cas
40
     Do While x <= 100
41
      Call receive()
42
      x=x+1
43
     loop
44
    i=i+1
45
	loop	
46
End Sub
47
 
318 kaklik 48
Sub main()
49
	Dim motors As Byte
50
	Dim sensors As Byte
51
	Dim buttons As Byte
52
	Dim i As Long
53
 
54
	'NASTAVENI IO
55
	lata=0xFF
56
	latb=0
57
	latc=0xFF
58
	trisa=0xF0
59
	trisb=0x3F
60
	trisc=0x9F
61
 
62
	'VYPNOUT ADC
63
	adcon1=0xC6
64
	adcon0=0xC0
65
 
66
	'UART 9600bps
67
	spbrg=64
68
	txsta = txsta & ~(1 << BRGH)
69
	txsta = txsta | (1 << TXEN)
70
	rcsta = rcsta | (1 << CREN)
71
	rcsta = rcsta | (1 << SPEN)
72
 
321 kaklik 73
	motors = 0x00
318 kaklik 74
 
321 kaklik 75
	lata = 0x0E 
76
    Call delay(200)
77
	lata = 0x0D
78
    Call delay(200)
79
	lata = 0x0B
80
    Call delay(200)
81
	lata = 0x07
82
    Call delay(200)
318 kaklik 83
 
321 kaklik 84
	motors = 0x77
85
 
86
    Call delay(100)
87
 
318 kaklik 88
 
89
Do while 1
90
 
321 kaklik 91
  sensors =0xFF 
92
  sensors = Call receive()	'prijmi stav cidel senzoru
318 kaklik 93
 
321 kaklik 94
  If (!((sensors.0) and (sensors.1))) Then
95
    motors = 0x77
96
  End If
97
 
98
  If (!(sensors.2)) Then
99
    motors = 0xF7
100
  End If
318 kaklik 101
 
321 kaklik 102
  If (!(sensors.3)) Then
103
    motors = 0x7F
104
  End If 
105
 
106
  lata = sensors
107
  call send(motors)
318 kaklik 108
 
321 kaklik 109
Loop
110
 
318 kaklik 111
End Sub