| Line 10... |
Line 10... |
| 10 |
//piezo pipak |
10 |
//piezo pipak |
| 11 |
#DEFINE SOUND_HI PIN_B4 |
11 |
#DEFINE SOUND_HI PIN_B4 |
| 12 |
#DEFINE SOUND_LO PIN_B5 |
12 |
#DEFINE SOUND_LO PIN_B5 |
| 13 |
|
13 |
|
| 14 |
//radkovy senzor |
14 |
//radkovy senzor |
| 15 |
#define SDIN PIN_D4 // seriovy vstup |
15 |
#define SDIN PIN_D4 // seriovy vstup |
| 16 |
#define SDOUT input(PIN_B2) // seriovy vystup |
16 |
#define SDOUT input(PIN_B2) // seriovy vystup |
| 17 |
#define SCLK PIN_D5 // takt |
17 |
#define SCLK PIN_D5 // takt |
| 18 |
|
18 |
|
| 19 |
int main_reset[8]={1,1,0,1,1,0,0,0}; // hlavni reset |
19 |
int main_reset[8]={1,1,0,1,1,0,0,0}; // hlavni reset |
| 20 |
int set_mode_rg[8]={1,1,1,1,1,0,1,0}; // zapsani do MODE registru |
20 |
int set_mode_rg[8]={1,1,1,1,1,0,1,0}; // zapis do MODE registru |
| 21 |
int clear_mode_rg[8]={0,0,0,0,0,0,0,0}; // nulovani MODE registru |
21 |
int clear_mode_rg[8]={0,0,0,0,0,0,0,0}; // nulovani MODE registru |
| 22 |
|
22 |
|
| 23 |
int olsa_l[51]={0}; // leva polovina radkoveho senzoru |
23 |
int olsa_line[96]={0}; // radkovy senzor |
| 24 |
int olsa_r[51]={0}; // prava polovina radkoveho senzoru |
- |
|
| 25 |
|
- |
|
| 26 |
|
24 |
|
| 27 |
//naraznik |
25 |
//naraznik |
| 28 |
#define BUMPL input(PIN_D6) |
26 |
#define BUMPL input(PIN_D6) |
| 29 |
#define BUMPR input(PIN_D7) |
27 |
#define BUMPR input(PIN_D7) |
| 30 |
|
28 |
|
| 31 |
//nouzove senzory |
29 |
//nouzove senzory |
| 32 |
#define LINEL 0 |
30 |
#define LINEL 0 |
| 33 |
#define LINER 1 |
31 |
#define LINER 1 |
| 34 |
#define TRESHOLD 200 // rozhodovaci uroven (zmereno 0 - cerna, 255 cerna) |
32 |
#define TRESHOLD 200 // rozhodovaci uroven (zmereno 0 - cerna, 255 cerna) |
| 35 |
int8 line_l; |
33 |
int8 line_l; |
| 36 |
int8 line_r; |
34 |
int8 line_r; |
| 37 |
|
35 |
|
| 38 |
// motory |
36 |
// motory |
| 39 |
#define LMF PIN_D0 |
37 |
#define LMF PIN_D0 |
| Line 41... |
Line 39... |
| 41 |
#define RMF PIN_D2 |
39 |
#define RMF PIN_D2 |
| 42 |
#define RMB PIN_D3 |
40 |
#define RMB PIN_D3 |
| 43 |
|
41 |
|
| 44 |
//PODPROGRAMY |
42 |
//PODPROGRAMY |
| 45 |
//SENZORY |
43 |
//SENZORY |
| 46 |
|
- |
|
| 47 |
//OLSA01A |
44 |
//OLSA01A |
| 48 |
void olsa_pulses(int count) // vytvori impulzy pro ridici logiku |
45 |
void olsa_pulses(int count) // vytvori impulzy pro ridici logiku |
| 49 |
{ |
46 |
{ |
| 50 |
int8 ct; |
47 |
int8 ct; |
| 51 |
for(ct=0;ct<=count;ct++) |
48 |
for(ct=0;ct<=count;ct++) |
| 52 |
{ |
49 |
{ |
| 53 |
delay_us(1); |
50 |
delay_us(1); // doba pro ustaleni |
| 54 |
output_high(SCLK); |
51 |
output_high(SCLK); |
| 55 |
delay_us(1); |
52 |
delay_us(1); // doba pro ustaleni |
| 56 |
output_low(SCLK); |
53 |
output_low(SCLK); |
| 57 |
} |
54 |
} |
| 58 |
} |
55 |
} |
| 59 |
|
56 |
|
| 60 |
void olsa_pulse() // vytvori jeden impulz |
57 |
void olsa_pulse() // vytvori jeden impulz |
| 61 |
{ |
58 |
{ |
| 62 |
delay_us(1); |
59 |
delay_us(1); // doba pro ustaleni |
| 63 |
output_high(SCLK); |
60 |
output_high(SCLK); |
| 64 |
delay_us(1); |
61 |
delay_us(1); // doba pro ustaleni |
| 65 |
output_low(SCLK); |
62 |
output_low(SCLK); |
| 66 |
} |
63 |
} |
| 67 |
|
64 |
|
| 68 |
void olsa_send(int info[]) // USART komunikace s modulem OLSA01A - poslani zpravy |
65 |
void olsa_send(int info[]) // USART komunikace s modulem OLSA01A - poslani zpravy |
| 69 |
{ |
66 |
{ |
| Line 105... |
Line 102... |
| 105 |
//ZACHRANNE SENZORY |
102 |
//ZACHRANNE SENZORY |
| 106 |
void read_blue_sensors() // cteni nouzovych senzoru |
103 |
void read_blue_sensors() // cteni nouzovych senzoru |
| 107 |
{ |
104 |
{ |
| 108 |
set_adc_channel(LINEL); // cti levy nouzovy senzor |
105 |
set_adc_channel(LINEL); // cti levy nouzovy senzor |
| 109 |
delay_us(10); |
106 |
delay_us(10); |
| 110 |
line_l=read_adc(); |
107 |
line_l=read_adc(); |
| 111 |
|
- |
|
| 112 |
set_adc_channel(LINER); // cti pravy nouzovy senzor |
108 |
set_adc_channel(LINER); // cti pravy nouzovy senzor |
| 113 |
delay_us(10); |
109 |
delay_us(10); |
| 114 |
line_r=read_adc(); |
110 |
line_r=read_adc(); |
| 115 |
} |
111 |
} |
| 116 |
|
112 |
|