Dans le cadre de mon pfe, je dois concevoir un fréquence mètre, j'ai trouvé pas mal de code sur internet mais il y a toujours un problème. dernièrement j'ai trouvé un code qui fonctionne bien le problème c'est que j'ai pas compris le raisonnement utilisé pour l'interruption est surtout cette instruction: CCP1CON.F0 = ~CCP1CON.F0;
le code de l'interruption est celui ci:
void interrupt()
{
if(PIR1.CCP1IF == 1)
{
if(pulso == 0)
{
t1 = (CCPR1H << 8) + CCPR1L;//capture au timer 1(dutyCycle e periodo)
pulso = 1;
CCP1CON.F0 = ~CCP1CON.F0; //a proxima captura é por borda de descida
}
else if(pulso == 1)
{
duty = (CCPR1H << 8) + CCPR1L;//captura o fim do dutyCycle
pulso = 2;
CCP1CON.F0 = ~CCP1CON.F0; //a proxima captura é por borda de subida
}
else if(pulso == 2)
{
t2 = (CCPR1H << 8) + CCPR1L;//captura o tempo2(fim do periodo)
TMR1H=0;TMR1L=0;
pulso = 0;
capturaOK = 1;
cnt++;
}
merci bien de m'aider
-----