Calcul fréquence mise à jour toutes les secondes (pic18f & CCP)
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Calcul fréquence mise à jour toutes les secondes (pic18f & CCP)



  1. #1
    quichedood

    Calcul fréquence mise à jour toutes les secondes (pic18f & CCP)


    ------

    Bonjour,

    J'utilise actuellement un PIC 18F45K20 (code en C avec MPLAB)
    Je souhaite être en mesure d'afficher 2 fréquences différentes chacune définie par un signal carré en entrée du PIC.

    Le timer0 est déjà utilisé.

    Je pense avoir bien saisi le fonctionnement des timers et CCP mais je ne parviens pas à trouver une solution à mon problème qui consiste à mesure une fréquence (faible, max ~300Hz) mais surtout à l'afficher toutes les secondes par exemple.

    Hors de question d'utiliser des délais dans tous les sens pour rafraichir l'affichage toutes les secondes .
    C'est donc la variable contenant la fréquence à afficher qui doit être mise à jour toutes les secondes et c'est à ce niveau là que je vois pas comment faire.

    Si je génère des interruptions tous les 16 fronts montants (possibilité offerte par les timers du PIC), plus ma fréquence va être élevée plus l'affichage sera mis à jour rapidement.

    Quelqu'un aurait une idée à me proposer ? (sans délais de 1sec dans le code )

    -----

  2. #2
    amoniaque

    Re : Calcul fréquence mise à jour toutes les secondes (pic18f & CCP)

    Hello,

    S'il te reste un timer de libre, tu l'utilises en interruptions toutes les secondes et tu affiches les résultats voulus à ce moment là .

    A++

  3. #3
    quichedood

    Re : Calcul fréquence mise à jour toutes les secondes (pic18f & CCP)

    Salut,

    Oui effectivement je pensais partir la dessus mais à 10Mhz, mon timer tourne trop vite (même avec les prescalers), en gros j'ai quasi 10 interruptions par seconde.

    Sinon je lance le calcul toutes les 10 interruptions ... c'est un peu "crade" (1 test tous les 1/10 de sec pour rien), ça m'étonne qu'il n'y ait pas une autre solution ...

  4. #4
    Forhorse

    Re : Calcul fréquence mise à jour toutes les secondes (pic18f & CCP)

    Si ton PIC n'a rien d'autre a faire ce n'est pas grave (dans le sens où ça ne monopolise pas les ressources qui seraient utiles pour autre chose)
    Sinon à chaque interruption tu incrémentes une variable pour faire un timer "software" et tu lances ton calculs a chaque fois que ce timer atteins 10
    (personnellement c'est comme ça que je fais quand j'ai besoin de générer 1 seconde)

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

    Re : Calcul fréquence mise à jour toutes les secondes (pic18f & CCP)

    Bonjour,

    Au lieu de faire ça par un timer, une solution serait de comparer dans ton programme principal la valeur lu lors de l'interruption et de la comparer à la valeur précédente. Si elles sont différentes, tu fais le calcul, tu met à jour ton affichage et tu mémorises la nouvelle valeur.
    Et ainsi de suite.
    Cordialement
    N'importe quoi, for ever :-)

  7. #6
    quichedood

    Re : Calcul fréquence mise à jour toutes les secondes (pic18f & CCP)

    J'y avais également pensé mais avec ma fréquence qui oscille entre 1Hz et 300Hz je vais souvent me retrouver avec 0 comme résultat.

    Par ailleurs je vais mettre à jour ma valeur plus de 10 fois/sec donc pour l'affichage ça va être problématique.

    Oui ça semble bête comme problème mais pas tant que ça finalement j'ai l'impression

  8. #7
    Forhorse

    Re : Calcul fréquence mise à jour toutes les secondes (pic18f & CCP)

    Non c'est juste toi qui te prend la tête pour rien. Tu cherches un truc compliqué là où c'est simple.

  9. #8
    RISC

    Re : Calcul fréquence mise à jour toutes les secondes (pic18f & CCP)

    Salut,

    La solution la plus simple (mais pas la moins couteuse) c'est d'utiliser un quartz 32kHz avec le timer1 que tu programmes pour te donner une interruption toutes les secondes...
    Cela dit honnetement compter 10 interruptions c'est pas crad....et cela fonctionnera sans PB ;=)

    a+

  10. #9
    quichedood

    Re : Calcul fréquence mise à jour toutes les secondes (pic18f & CCP)

    Citation Envoyé par Forhorse Voir le message
    Non c'est juste toi qui te prend la tête pour rien. Tu cherches un truc compliqué là où c'est simple.
    Possible, je débute dans la programmation des µproc je ne sais pas si ça peut me servir d'excuse .

    Citation Envoyé par RISC Voir le message
    Salut,

    La solution la plus simple (mais pas la moins couteuse) c'est d'utiliser un quartz 32kHz avec le timer1 que tu programmes pour te donner une interruption toutes les secondes...
    Cela dit honnetement compter 10 interruptions c'est pas crad....et cela fonctionnera sans PB ;=)

    a+
    L'idée du quartz me plait pas mal !

    Bien noté pour le fait que je me complique la vie pour rien (et que compter 10 interruptions n'est pas si crade que ça ).

    Merci à vous tous, je viendrai poster la solution retenue

  11. #10
    amoniaque

    Re : Calcul fréquence mise à jour toutes les secondes (pic18f & CCP)

    Citation Envoyé par quichedood Voir le message
    Bien noté pour le fait que je me complique la vie pour rien (et que compter 10 interruptions n'est pas si crade que ça ).
    Hello,

    Perso' je ne trouve pas ça crade et comme beaucoup ici c'est ce que je fais aussi ...
    Un compteur en variable sur 10 incréments c'est presque rien, un octet pour ta variable, quelques dizaines d'instructions pour l'incrémentation et le test de valeur ... Et surtout super simple à coder .

    Au pire tu essais et si ça fonctionne bien tu gardes !

  12. #11
    quichedood

    Re : Calcul fréquence mise à jour toutes les secondes (pic18f & CCP)

    Bon, j'avais la solution sous les yeux ! (celle au final proposée par RISC)

    J'utilise une horloge dans mon montage (Real-Time Clock), cette dernière à un quartz intégré qui fonctionne à 32768Hz

    Comme par hasard, ce composant (Maxim DS1339-C) à une sortie que l'on peut configurer pour sortir un signal carré à 1Hz.

    Cette sortie à fini sur un port permettant de générer une interruption et voilà le tour est joué.

    En tout cas merci à vous 4 pour le coup de main !

Discussions similaires

  1. [Thermique] Chaudière ELM Leblanc Acléa : s'allume et s'éteint toutes les deux secondes ?
    Par invited10b9e1c dans le forum Dépannage
    Réponses: 2
    Dernier message: 02/01/2011, 15h11
  2. LM? pulse toutes les secondes
    Par invitedbf4c49b dans le forum Électronique
    Réponses: 7
    Dernier message: 05/03/2010, 19h52
  3. [Latex] Un tutorial avec toutes les options de mise en page ?
    Par RVmappeurCS dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 14/07/2007, 23h49
Découvrez nos comparatifs produits sur l'informatique et les technologies.