Bonjour, j'ai un programme entièrement construit qui mesure le temps d'une periode entre deux fronts montants avec le PIC 16F876A et j'aimerais pouvoir supprimer les interruptions, il faudrait que je sache si le CCPR1IF est à 1 ou 0 sauf qu'il faudrait que j'aille dans sur le bit 2 du PIR1 et je ne sais pas du tout comment faire. Je travaille sous langage C avec PIC C Compiler.
Voilà mon programme :
long temps1,temps2,periode;
float periode_f,frequence;
#int_ccp1
void isr()
{
temps2 = CCP_1;
periode=temps2-temps1;
temps1=temps2;
}
void main()
{
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RT CC_DIV_1);
setup_timer_1(T1_INTERNAL|T1_D IV_BY_1);
setup_timer_2(T2_DISABLED,0,1) ;
setup_ccp1(CCP_CAPTURE_RE);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
temps1=0;
enable_interrupts(INT_CCP1); // à supprimer
enable_interrupts(GLOBAL); // à supprimer
while(1)
{
delay_ms(1000);
printf("\r\n%lu cycles ", periode);
periode_f=(float)periode;
periode_f=periode_f*1.221;
frequence=1/(periode_f);
frequence=frequence*1000;
printf("\t\t\t\t%f kHz ",frequence);
}
}
-----