Rev Author Line No. Line
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 //DIAGNOSTIKA A SLEDOVANI CARY
51 void diagnostika() //spusti diagnostiku
52 {
53 output_low(LED2);
54 while(true)
55 {
56 cti_bocni_senzory();
57 }
58 }
59  
60 void stopuj() //zacne jezdit po care
61 {
62 output_low(LED1);
63 while(true)
64 {
65 cti_bocni_senzory();
66 }
67 }
68  
69 // HLAVNI SMYCKA
70 void main()
71 {
72 // NASTAVENI > provede se pouze pri zapnuti
73 setup_adc_ports(ALL_ANALOG); // vsechny ADC porty > analogove vstupy
74 setup_adc(ADC_CLOCK_INTERNAL);
75 setup_spi(SPI_SS_DISABLED);
76 setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
77 setup_timer_1(T1_DISABLED);
78 setup_timer_2(T2_DIV_BY_16,255,1); //casovac pro PWM
79 setup_ccp1(CCP_PWM); // povoli PWM na pinu RC2
80 setup_ccp2(CCP_PWM); // povolĂ­ PWM na pinu RC1
81 setup_comparator(NC_NC_NC_NC);
82 while(true)
83 {
84 if(BUMPL==1)
85 {
86 diagnostika();
87 }
88 if(BUMPR==1)
89 {
90 stopuj();
91 }
92  
93 }
94  
95 }