700 |
cizelu |
1 |
#include "C:\Cizelu\Documents\MLAB\projekty\cizelu\Maturitni_prace\Program\PIC\main.h" |
|
|
2 |
|
|
|
3 |
//univerzalni LED diody |
|
|
4 |
#define LED1 PIN_D0 |
|
|
5 |
#define LED2 PIN_D1 |
|
|
6 |
|
|
|
7 |
//piezo pipak |
|
|
8 |
#DEFINE SOUND_HI PIN_B1 |
|
|
9 |
#DEFINE SOUND_LO PIN_B2 |
|
|
10 |
|
|
|
11 |
//naraznik |
|
|
12 |
#define BUMPL !input(PIN_D2) |
|
|
13 |
#define BUMPR !input(PIN_D3) |
|
|
14 |
|
|
|
15 |
//nouzove senzory |
|
|
16 |
#define LINEL !input(PIN_A1) |
|
|
17 |
#define LINER !input(PIN_A2) |
|
|
18 |
int line_l; |
|
|
19 |
int line_r; |
|
|
20 |
|
|
|
21 |
// motory |
|
|
22 |
|
|
|
23 |
|
|
|
24 |
//PODPROGRAMY |
|
|
25 |
//SENZORY |
|
|
26 |
void cti_bocni_senzory() |
|
|
27 |
{ |
|
|
28 |
set_adc_channel(LINEL); //cti levy nouzovy senzor |
|
|
29 |
delay_us(10); |
|
|
30 |
line_l=read_adc(); |
|
|
31 |
set_adc_channel(LINER); //cti pravy nouzovy senzor |
|
|
32 |
delay_us(10); |
|
|
33 |
line_r=read_adc(); |
|
|
34 |
} |
|
|
35 |
|
|
|
36 |
//PIPAK |
|
|
37 |
void beep(unsigned int16 period, unsigned int16 length) |
|
|
38 |
{ |
|
|
39 |
unsigned int16 bp; //promenna pro nastaveni delky |
|
|
40 |
|
|
|
41 |
for(bp=length;bp>0;bp--) |
|
|
42 |
{ |
|
|
43 |
output_high(SOUND_HI);output_low(SOUND_LO); |
|
|
44 |
delay_us(period); |
|
|
45 |
output_high(SOUND_LO);output_low(SOUND_HI); |
|
|
46 |
delay_us(period); |
|
|
47 |
} |
|
|
48 |
} |
|
|
49 |
|
|
|
50 |
// HLAVNI SMYCKA |
|
|
51 |
void main() |
|
|
52 |
{ |
|
|
53 |
// NASTAVENI > provede se pouze pri zapnuti |
|
|
54 |
setup_adc_ports(ALL_ANALOG); // vsechny ADC porty > analogove vstupy |
|
|
55 |
setup_adc(ADC_CLOCK_INTERNAL); |
|
|
56 |
setup_spi(SPI_SS_DISABLED); |
|
|
57 |
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1); |
|
|
58 |
setup_timer_1(T1_DISABLED); |
|
|
59 |
setup_timer_2(T2_DIV_BY_16,255,1); //casovac pro PWM |
|
|
60 |
setup_ccp1(CCP_PWM); // povoli PWM na pinu RC2 |
|
|
61 |
setup_ccp2(CCP_PWM); // povolĂ PWM na pinu RC1 |
|
|
62 |
setup_comparator(NC_NC_NC_NC); |
701 |
cizelu |
63 |
output_high(LED1); // zhasne LED1 |
|
|
64 |
output_high(LED2); // zhasne LED2 |
|
|
65 |
|
700 |
cizelu |
66 |
while(true) |
|
|
67 |
{ |
|
|
68 |
if(BUMPL==1) |
|
|
69 |
{ |
701 |
cizelu |
70 |
output_low(LED1); |
700 |
cizelu |
71 |
} |
|
|
72 |
if(BUMPR==1) |
|
|
73 |
{ |
701 |
cizelu |
74 |
output_low(LED2); |
|
|
75 |
} |
700 |
cizelu |
76 |
} |
|
|
77 |
|
|
|
78 |
} |