mesure de frequence: CCP. - Page 2
Répondre à la discussion
Page 2 sur 2 PremièrePremière 2
Affichage des résultats 31 à 41 sur 41

mesure de frequence: CCP.



  1. #31
    mortaurat

    Re : mesure de frequence: CCP.


    ------

    pourtant lorsque je fais
    frequence = ((1/(CCP_1/5)) *1000000) ;
    je retrouve 0...

    l'ideal serait d'effectuer une mesure toute les 5 secondes environs, afin que mon afficheur suive l'evolution de ma frequence.

    -----

  2. #32
    sdec25

    Re : mesure de frequence: CCP.

    Citation Envoyé par mortaurat Voir le message
    je retrouve 0...
    C'est le même problème dont on parlait dans les premiers messages.
    frequence = ((1/(CCP_1/5)) *1000000) ;
    CCP_1/5 = 2000
    1/2000 = 0
    0 * 1000000 = 0

  3. #33
    mortaurat

    Re : mesure de frequence: CCP.

    j'ai fais
    frequence = ((CCP_1/25))
    ca me donne 430 Hz, c'est ce que je devrais avoir environ. Merci de m'avoir aidé.

    Par contre faut que je resolve ce probléme d'affichage instable... Il l'est tellement qu'il m'indique 8430 et à peut prés tout les chiffres clignotent... tu as une idée ?

  4. #34
    sdec25

    Re : mesure de frequence: CCP.

    CCP_1 est la période, la fréquence est inversement proportionnelle à la période donc CCP_1/25 n'est pas bon.
    Le premier calcul était bon.
    Mathématiquement x/25 n'est pas égal à 1/(x/5)*1000000
    Pour l'affichage tu peux simplement faire une pause (de 500ms par exemple).

  5. #35
    mortaurat

    Re : mesure de frequence: CCP.

    merci g fait
    Code:
    (1000000/(CCP_1/5))
    Le probléme de l'affichage vient je pense du fait que l'interuption peut se faire à n'importe quel moment, donc les valeurs d'unité, dizaine etc... Peuvent sensiblement changer, et à grande vitesse, on voit n'importe quoi...

  6. #36
    sdec25

    Re : mesure de frequence: CCP.

    Citation Envoyé par mortaurat Voir le message
    Le probléme de l'affichage vient je pense du fait que l'interuption peut se faire à n'importe quel moment, donc les valeurs d'unité, dizaine etc... Peuvent sensiblement changer, et à grande vitesse, on voit n'importe quoi...
    Oui donc il ne faut pas calculer les unite, dizaine, ... dans l'interruption.
    Ou alors désactiver l'interruption quand on fait l'affichage.

    Et puis j'ai remarqué que tu remets le timer à 0 dans l'interruption sans tenir compte du temps de traitement de l'interruption.

  7. #37
    mortaurat

    Re : mesure de frequence: CCP.

    Voici le programme en version quasi finale:
    Code:
    #include "C:\Documents and Settings\mortaurat\Bureau\CCS COMPILER PROJET\frequence\frequence.h"
    
    void affichage_frequence ();
    int unite=0, dizaine=0, centaine=0, millier=0; // initialisation des variables;
    unsigned long frequence ;
    int tab[10] ; //contient le code pour chaque led
    #int_ccp1
    void isr_ccp1()
    {
    set_timer1(0); //clear timer
    clear_interrupt(int_ccp1);
    }
    void main()
    {
    int i ;
    //remplissage tableau
    tab[0]=0b0111111 ;
    tab[1]=0b0000110;
    tab[2]=0b1011011;
    tab[3]=0b1001111;
    tab[4]=0b1100110;
    tab[5]=0b1101101;
    tab[6]=0b1111101;
    tab[7]=000000111;
    tab[8]=0b1111111;
    tab[9]=0b1101111;
    while(1)
    {
    setup_timer_1(T1_internal);
    setup_ccp1(CCP_CAPTURE_RE);
    
    enable_interrupts(global);
    enable_interrupts(int_ccp1);
    frequence = 1000000/(CCP_1/5) ; // equivalence periode et frequence
    if (frequence > 9999) frequence = 9999;
    
    //extraction des unités, centaine, dizaine et millier. % permet d'avoir le reste d'une division
    Unite = (frequence%10);
    Dizaine = ((frequence%100)/10) ;
    centaine = ((frequence%1000)/100);
    millier = ((frequence)/1000);
    while (i<1000)
    {
    affichage_frequence();
    i++;
    }
    i=0;
    }
    } 
    
    void affichage_frequence ()
    {
    
    // affichage sur BCD/7segments
    output_B(tab[unite]);
    output_low(pin_A1);
    delay_ms(1);
    output_high(pin_A1);
    output_B(tab[dizaine]);
    output_low(pin_A2);
    delay_ms(1);
    output_high(pin_A2);
    output_B(tab[centaine]);
    output_low(pin_A3);
    delay_ms(1);
    output_high(pin_A3);
    output_B(tab[millier]);
    output_low(pin_A4);
    delay_ms(1);
    output_high(pin_A4);
    }
    Dernier petit probléme, je trouve 8463 pour la frequence... Ce petit 8 qui s'ajoute au niveau des milliers et qui sort de nul pars...

  8. #38
    sdec25

    Re : mesure de frequence: CCP.

    Citation Envoyé par mortaurat Voir le message
    Dernier petit probléme, je trouve 8463 pour la frequence... Ce petit 8 qui s'ajoute au niveau des milliers et qui sort de nul pars...
    Pour le 8 je ne sais pas.
    Pour l'erreur de précision : 463 au lieu de 450 ça vient du timer 1 que tu dois initialiser à 311 au lieu de 0 (temps de traitement de l'interruption que j'ai calculé avec l'erreur de 13 sur 450).

  9. #39
    invite3dc61daa

    Re : mesure de frequence: CCP.

    Salut
    J'utilise le même principe que toi pour la mesure de la fréquence d'un signal carré.
    Sa fonctionne très bien pour les fréquences supérieur ou égale à 80Hz et inférieur ou égal à 1khz.
    J'aimerais savoir quoi modifié pour que sa mesure les fréquences inférieur à 80Hz?

    #include <18F2550.h>
    #fuses HSPLL,NOWDT,NOPROTECT,NOLVP
    #device ADC=10
    #use delay(clock=20000000)
    #use rs232(baud=9600, xmit=PIN_C4, rcv=PIN_C5, stream=HF)

    unsigned long frequence=0;;

    #int_ccp1
    void isr_ccp1()
    {
    set_timer1(50); //clear timer
    clear_interrupt(int_ccp1);
    }

    void mesurefrequence()
    {
    setup_timer_1(T1_internal);
    setup_ccp1(CCP_CAPTURE_RE);

    enable_interrupts(global);
    enable_interrupts(int_ccp1);
    frequence = 1000000/(CCP_1/5) ; // equivalence periode et frequence
    //frequence = CCP_1/5 ; //période en µs
    }

    void main()
    {
    setup_adc_ports( AN0_TO_AN1);
    setup_adc( ADC_CLOCK_DIV_2);

    while(1)
    {
    mesurefrequence();
    fprintf(HF,"frequence= %ld\r",frequence);
    {
    }

  10. #40
    f6bes

    Re : mesure de frequence: CCP.

    Bjr à toi et bienvenue sur FUTURA,
    N'oublie de regarder les dates des messages qui..précédent le tien....2009.
    C'est parfois utile si l'on attends une réponse !
    Bonnes fétes

  11. #41
    invite3dc61daa

    Re : mesure de frequence: CCP.

    Citation Envoyé par f6bes Voir le message
    Bjr à toi et bienvenue sur FUTURA,
    N'oublie de regarder les dates des messages qui..précédent le tien....2009.
    C'est parfois utile si l'on attends une réponse !
    Bonnes fétes
    Bonjour.
    C'est vrai que sa date mais je ne voulais pas recrée une discussion sur le même sujet.
    Merci, bonne fête à toi aussi.

Page 2 sur 2 PremièrePremière 2

Discussions similaires

  1. mesure de frequence
    Par invite85b00791 dans le forum Électronique
    Réponses: 15
    Dernier message: 02/08/2012, 17h43
  2. [Génétique] Mesure de fréquence de recombinaison
    Par invite1648352d dans le forum Biologie
    Réponses: 0
    Dernier message: 07/01/2009, 16h50
  3. Mesure de fréquence
    Par invite5e29026f dans le forum Électronique
    Réponses: 4
    Dernier message: 23/04/2008, 17h42
  4. Mesure de frequence de vibration
    Par invite76af0dde dans le forum Électronique
    Réponses: 6
    Dernier message: 02/02/2008, 11h53
  5. mesure de la fréquence du son
    Par invite4ac61d3e dans le forum Physique
    Réponses: 1
    Dernier message: 22/09/2005, 20h25
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...