salut
jais écrit un programme de pic16f77a pour mesurer le temps que la patte RC0 est égal a 1
ce programme lance le timer puis il attend que la patte RC0 égal a 1 après il initialise le timer et il le laisse compter
jusque que la patte RC0 égal a 0
puis on calcul le temps en microseconde est si il est sup de 10 seconde on fait PORTB=0b10001111
si autre PORTB.F5=1
voila le code
pour le montageCode:#define ir_in portc.f0 unsigned char COUNT; unsigned int retint; void interrupt() { count++; intcon=0b00100000; TMR0=0; } unsigned int calcul(){ TMR0= 0; count=0; while(ir_in == 1){ } retint=2*(TMR0+(count*256)); return retint; } void read(){ unsigned int temp_ir; while(ir_in == 0){ } temp_ir = calcul(); if((temp_ir>10000000)) { PORTB=0b10001111; Delay_ms(1000); } else { PORTB.F5=1; Delay_ms(1000); } } void main() { TRISC=0xFF; TRISB=0; PORTB=0; PORTC=0; option_reg=0b10000000; //confuguration intcon=0b10100000; //validation du timer TMR0 = 0; while(1){ read(); } while(1); }
merci a vous
-----