Bonjour,
Je souhaite réalisé un programme permettant de calculer la durée entre un front montant et un front descendant sur une entrée de mon PIC (PIN B0) à une fréquence quelconque grâce à un GBF. Pouvez me dire ce qu'il ne va pas dans mon programme, car il affiche des valeurs qui n'ont rien à voir.
L'envoi se fait par liaison USB, c'est pour cela qu'il y a des foncions qui s'y reportent.
unsigned int8 time;
#int_EXT
void EXT_isr(void)
{ disable_interrupts(GLOBAL);
while(!input(PIN_B0)); /* wait for signal to go high */
set_timer1(0);
while(input(PIN_B0)); /* wait for signal to go low */
time = get_timer1();
enable_interrupts(GLOBAL);
}
void main(void)
{
enable_interrupts(GLOBAL);
enable_interrupts(INT_EXT);
ext_int_edge(0, L_TO_H); //interruption sur front montant
usb_init_cs();
setup_timer_1(T1_INTERNAL | T1_DIV_BY_8);
do
{
usb_task();
usb_debug_task();
printf(usb_cdc_putc,"La duree entre 2 fronts est de %d\n\n\r", time);
} while (TRUE);
}
Merci d'avance
-----