#include "C:\Cizelu\Documents\MLAB\projekty\cizelu\Maturitni_prace\Program\PIC\main.h"//univerzalni LED diody#define LED1 PIN_D0#define LED2 PIN_D1//piezo pipak#DEFINE SOUND_HI PIN_B1#DEFINE SOUND_LO PIN_B2//naraznik#define BUMPL !input(PIN_D2)#define BUMPR !input(PIN_D3)//nouzove senzory#define LINEL !input(PIN_A1)#define LINER !input(PIN_A2)int line_l;int line_r;// motory//PODPROGRAMY//SENZORYvoid cti_bocni_senzory(){set_adc_channel(LINEL); //cti levy nouzovy senzordelay_us(10);line_l=read_adc();set_adc_channel(LINER); //cti pravy nouzovy senzordelay_us(10);line_r=read_adc();}//PIPAKvoid beep(unsigned int16 period, unsigned int16 length){unsigned int16 bp; //promenna pro nastaveni delkyfor(bp=length;bp>0;bp--){output_high(SOUND_HI);output_low(SOUND_LO);delay_us(period);output_high(SOUND_LO);output_low(SOUND_HI);delay_us(period);}}//DIAGNOSTIKA A SLEDOVANI CARYvoid diagnostika() //spusti diagnostiku{output_low(LED2);while(true){cti_bocni_senzory();}}void stopuj() //zacne jezdit po care{output_low(LED1);while(true){cti_bocni_senzory();}}// HLAVNI SMYCKAvoid main(){// NASTAVENI > provede se pouze pri zapnutisetup_adc_ports(ALL_ANALOG); // vsechny ADC porty > analogove vstupysetup_adc(ADC_CLOCK_INTERNAL);setup_spi(SPI_SS_DISABLED);setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);setup_timer_1(T1_DISABLED);setup_timer_2(T2_DIV_BY_16,255,1); //casovac pro PWMsetup_ccp1(CCP_PWM); // povoli PWM na pinu RC2setup_ccp2(CCP_PWM); // povolĂ PWM na pinu RC1setup_comparator(NC_NC_NC_NC);while(true){if(BUMPL==1){diagnostika();}if(BUMPR==1){stopuj();}}}