frequencemetre ccp
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

frequencemetre ccp



  1. #1
    boch19

    frequencemetre ccp


    ------

    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

    -----

  2. #2
    PIXEL

    Re : frequencemetre ccp

    Citation Envoyé par boch19 Voir le message
    Dans le cadre de mon pfe, je dois concevoir
    j'ai bien lu "concevoir" en non pas "bidocher" ?

  3. #3
    Murayama

    Re : frequencemetre ccp

    Bonjour!

    j'ai trouvé pas mal de code sur internet mais il y a toujours un problème.
    Personne n'a fait le programme qui correspond exactement à vos besoins? C'est vraiment
    un scandale! Tout fout le camp!

    Bon, soyons positifs, un petit conseil:
    1. Vous prenez une carte de développement qui correspond à votre processeur ou bien vous travaillez
    directement sur un hardware maison.
    2. Vous apprenez à allumer une LED.
    3. Vous apprenez à utiliser un timer pour allumer la LED périodiquement
    4. Vous apprenez à vous servir des interruptions des ports
    5. Vous programmez un timer en mode capture (qui vous permettra de mesurer l'intervalle entre 2 fronts).
    Là, il y aura déjà du boulot de fait.
    Ensuite, vous vous apercevrez que quand la fréquence est basse, il faut mesurer la période.
    Et quand elle est haute, il faut soit la diviser, soit mesurer 10, 100, ..... 1000000 périodes,
    soit mesurer le nombre de périodes dans un intervalle fixe et faire une règle de 3 (même si
    ce n'est plus au programme)... etc... etc...

    Évidemment, ça vous prendra un peu plus de temps que de copier un programme sur le net,
    mais je ne serais pas étonné que vous appreniez plus par cette méthode.
    Comment, vous dites? C'est pour cet après-midi? Alors montrez au prof ce que vous avez copié.

    Pascal

  4. #4
    boch19

    Re : frequencemetre ccp

    non, mon objectif ce n'est pas de copier le programme mais de le comprendre
    merci quand meme!!

  5. A voir en vidéo sur Futura
  6. #5
    paulfjujo

    Re : frequencemetre ccp

    bonjour,


    Code:
    CCP1CON.F0 = ~CCP1CON.F0;

    le but est d'inverser le sens de la detection entree d'interruption CCP
    soit sur le front montant soit sur le front descendant
    pour mesurer la duree etat Haut ou etat bas

    cependant ce bout de code me parait zarbi!
    Pourquoi 3 mesures de duree ?
    Debordements de compteur TMR1 non comptabilisés dans chacun des cas !


    Relire la datasheet du MCU et en particulier la partie Capture CCP1
    et reproposer un code qui devrait donner satisfaction..
    à tester sur une large gamme de frequence d'entree,
    car il pourrait tomber en marche que sur une portion de frequence seulement..

    Quelle est la gamme de mesure ?

  7. #6
    boch19

    Red face Re : frequencemetre ccp

    concernant la mesure de frequence il mesure exactement la valeur souhaités, parc qu'on travaille à basse freq
    les 3 mesure d'après ce que j'ai compris, pour 1er le front montant pulso=0,il enregistre la valeur du temps, pour le second front c'est le front descendant donc il ne fait rien, pulso=1, puis au 3emme front c'est à nouveau le front montant donc il enregistre sa valeur pour pouvoir par la suite faire la diffence...

  8. #7
    paulfjujo

    Re : frequencemetre ccp

    un code qui fonctionne bien
    il mesure exactement la valeur souhaitée
    ,

    il a des chances de fonctionner QUE SI LE RAPPORT CYCLIQUE EST DE 1
    50% ON et 50% OFF
    avec un changement de sens de front impair...
    et encore ...

    essaie avec un rapport cyclique de 0.25 pour voir ... 25% ON et 75% OFF

    Comment geres tu t1,t2 et Duty ?
    à quoi sert "Cnt"
    Periode du signal ? (et inversement frequence)
    Les depassements eventuels de Timer1 ne sont pas gérés .
    Dernière modification par paulfjujo ; 04/03/2014 à 17h26.

Discussions similaires

  1. fréquencemètre
    Par invite1f4fbb73 dans le forum Physique
    Réponses: 9
    Dernier message: 07/01/2019, 18h22
  2. Fréquencemetre
    Par inviteec5fcc21 dans le forum Électronique
    Réponses: 6
    Dernier message: 19/04/2010, 08h49
  3. fréquencemétre
    Par invite43a8f1a7 dans le forum Électronique
    Réponses: 3
    Dernier message: 24/03/2010, 15h12
  4. Frequencemetre
    Par invite683e0c99 dans le forum Électronique
    Réponses: 12
    Dernier message: 16/01/2009, 18h26
  5. Fréquencemètre
    Par azertylr dans le forum Électronique
    Réponses: 41
    Dernier message: 29/06/2006, 20h50
Découvrez nos comparatifs produits sur l'informatique et les technologies.