bonjour j'ai besoin d'aide sur ce programme que je ne comprends pas
#include <htc.h>
unsigned char tab[60],i,dcf_minute,dcf_heure;
unsigned int TIMER1;
void interrupt my_isr(void)
{
if(INT0IF) //Front sur B0
{
if(INTEDG0==1) //si front montant sur INT0
{
// timer 0 permet de mesurer le start bit ?
T0CON = 0b00000100; //configuration du timer 0 ?
TMR0L = 0xE4; //chargement timer 0 à 0x48E4 ? environ 1,5s
TMR0H = 0x48;
TMR0ON = 1; //mise en fonction timer 0
//timer 1 permet de mesurer largeur impulsion ?
T1CON = 0b00110100; //configuration du timer 1 ?
TMR1L = 00; //chargement timer 1 à 0x0000
TMR1H = 00;
TMR1ON = 1; //mise en fonction timer 1
INTEDG0 = 0; //INT0 sur front descendant
}
else
{
if(INTEDG0==0) //si front descendant sur INT0
{
TMR1ON = 0;
TIMER1 = TMR1H*0x100 + TMR1L; //mise en mémoire du contenu du timer 1
if(TIMER1 < 18750)
{
tab[i]=0; //si impulsion < 150ms mise à 0 valeur tableau
}
else
{
if(TIMER1< 32000)
{
tab[i]=1; //si impulsion < 250ms mise à 1 valeur tableau
}
}
i=i+1; //incremente indice tableau
dcf_seconde++;
INTEDG0 = 1; //INT0 sur font montant
}
}
INT0IF = 0; //validation INT0
}
if(TMR0IF) //si interruption timer 0 detection bit start
{
i=0; //indexe tableau initialisé
INTEDG0 = 1; //INT0 sur font montant
TMR0IF = 0; //validation TIMER 0
dcf_seconde = 0;
}
}
void main()
{
IPEN = 1; // valide la prioritée des int
GIEH = 1; // valide toutes les int non masquées
TRISB = 0x03;
TMR0IE=1; // valide debordement TMR0
INTEDG0 = 1; // int front montant sur INT0
INT0IE = 1; // valide int sur INT0
i=0;
while(1)
{
dcf_heure=tab[29]+tab[30]*2+tab[31]*4+tab[32]*8+tab[33]*16+tab[34]*32;
dcf_minute=tab[21]+tab[22]*2+tab[23]*4+tab[24]*8+tab[25]*16+tab[26]*32+tab[27]*128;
}
}
-----