Programmation d'un PIC16F877 avec PICC???

Xavi86 Messages postés 14 Statut Membre -  
 waytae -
Bonjour , comment calculer le temps entre le passage de l'état high à l'état low d'une pin d'un pic16F877 en utilisant la fonction get_timer1() (programmation avec PICC compiler), sachant que j'ai utilisé ce programme mais la valeur affichée est bizarre "48889" malgré que la duré est entre 100µs et 20ms .
le programme:
unsigned int16 echo_delay;
void monitor_distance_sensor(void)

{
output_high(PIN_B3);
delay_ms(300);
output_low(PIN_B3);
while(!input(PIN_B4)) ;
disable_interrupts(GLOBAL);
set_timer1(0);
while( input(PIN_B4) );
echo_delay = get_timer1();
printf(lcd_putc,"echo_delay=: %lu",echo_delay);
}

1 réponse

  1. waytae
     
    salut,
    vous pouvez l'utiliser sans interruption

    long int k,;
    int present,last=0;

    void main ()
    {
    while(true)
    {
    //fonction qui détecte le front montant d'un signal
    // début de la fonction
    //**************************************************
    present=bit_test(input_b(),7); //lecture de état de RB7 référence
    if (!last && present)
    {
    k++;
    }
    last=present;
    //***************************************************
    //fin de la fonction
    }
    }

    bonne chance
    2