1: #include 2: #include "biosdem.h" 3: 4: __CONFIG (0x3539); 5: #define SEUIL 113 6: void tout_droit(void); 7: void virage_droite(void); 8: void virage_gauche(void); 9: void arret(void); 10: void init_moteur(void); 11: void init_del(void); 12: char Detection_Piste(void); 13: 14: void main ( void ) 15: { 16: char Capteur=0; 17: 18: ADCON1=0x00; 19: adc_on(); 20: // init_moteur(); 21: init_del(); 22: 23: for(;;) 24: { 25: if (RD7==1) 26: { Capteur=Detection_Piste();} 27: } 28: } 29: 30: 31: void init_del(void) 32: { 33: TRISD0=0; 34: TRISD1=0; 35: TRISD2=0; 36: TRISD3=0; 37: TRISD4=0; 38: TRISD5=0; 39: TRISD6=0; 40: TRISD7=0; 41: } 42: 43: 44: void init_moteur(void) 45: { 46: PR2=99; //periode 100us avec quartz 4Mhz 47: CCPR1L=0; 48: CCPR2L=0; 49: TRISD1=0; 50: TRISD2=0; 51: TRISD3=0; 52: TRISC1=0; 53: TRISC2=0; 54: TMR2ON=1; 55: CCP1CON=0x0C; 56: CCP2CON=0x0C; 57: } 58: char Detection_Piste(void) 59: { char masque=0; 60: char CaptDroit1=0,CaptDroit2=0,CaptCentre=0, CaptGauche1=0,CaptGauche2=0; 61: 62: CaptDroit2=adc_read_8b(0);//capteur droit 63: CaptDroit1=adc_read_8b(1);//capteur droit 64: CaptCentre=adc_read_8b(2);//capteur Centre 65: CaptGauche1=adc_read_8b(3);//capteur Gauche 66: CaptGauche2=adc_read_8b(4);//capteur Gauche 67: 68: masque = 0; 69: if(CaptDroit2