• Nous sommes actuellement le 07 Septembre 2010, 15:08

    Heures au format UTC + 1 heure




    Publier un nouveau sujet Répondre au sujet  [ 4 messages ] 
    Auteur Message
     Sujet du message: Je cherche à percer les mystères des Timers
    MessagePublié: 08 Avril 2010, 19:57 
    Hors-ligne

    Inscrit le: 08 Avril 2010, 19:24
    Messages: 4
    Bonsoir,

    Comme le titre l'indique,
    Je cherche à comprendre dans la pratique
    l'utilisation des Timers.

    J'apprend depuis quelques mois la programmation
    en MiKroC sur PICs,
    L'utilisation des boucles, des conditions etc...
    me sont familières,
    j'ai bien évolué, l'utilisation des ports en entrées sorties
    l'utilisation de certaines librairies comme les LCD, RS232
    ne me pose pas de problème pour le moment,
    j'ai pu les mettre en pratique.

    Je comprend que l'utilisation des timers est primordiale
    mais je n'arrive vraiment pas à comprendre et mettre en pratique.
    je bloque sur cette étape depuis plus d'un mois!!

    ça ne me parle pas du tout.

    j'ai ratissé le net de fond en comble, mais rien n'y
    fait, tout ce que je lis sur le sujet, malheureusement
    la plupart du temps en Anglais n'aide pas vraiment
    quand le sujet est totalement inconnu,
    et le peu que j'ai pu lire en Français n'apporte par mieux.


    Si l'un d'entre vous maitrise le sujet,
    Pourrait-il m'éclairer sur le sujet avec des exemples concrets.

    je bloque totalement.

    Mon challenge est le suivant.
    J'ai réalisé une insoleuse à LED (en 2007)
    contrôlée par une minuterie à PIC 16f84
    et afficheur 7 segments, avec schéma et code trouvée sur le net.

    Je m'étais fixé donc, d'apprendre et de comprendre
    la programmation des pics afin de pouvoir en refaire une
    par moi-même mais cette fois-ci avec affichage sur LCD,
    Il me reste "juste" à enfin maitriser les timers pour mener
    à bien ce projet.

    Merci de m'avoir lu ;)


    Dernière édition par Hearty le 28 Juillet 2010, 17:45, édité 1 fois au total.

    Haut
     Profil  
     
     Sujet du message: Re: Je cherche à percer les mystères des Timers
    MessagePublié: 31 Mai 2010, 23:30 
    Hors-ligne

    Inscrit le: 08 Avril 2010, 19:24
    Messages: 4
    La question n'est plus d'actualité,
    j'ai pu enfin comprendre et utiliser les timers,
    enfin le timer 0 pour le moment,
    j'ai donc réalisé ma minuterie avec afficheur LCD.

    Merci de votre lecture...

    :)


    Haut
     Profil  
     
     Sujet du message: Re: Je cherche à percer les mystères des Timers
    MessagePublié: 03 Juin 2010, 18:25 
    Hors-ligne
    Administrateur
    Avatar de l’utilisateur

    Inscrit le: 10 Mars 2009, 22:02
    Messages: 51
    Super peux-tu me dire ce qui t'a aidé ?

    _________________
    Lukes


    Haut
     Profil  
     
     Sujet du message: Re: Je cherche à percer les mystères des Timers
    MessagePublié: 07 Juin 2010, 13:57 
    Hors-ligne

    Inscrit le: 08 Avril 2010, 19:24
    Messages: 4
    Bonjour,

    Ma réponse va te sembler banale
    mais beaucoup lecture,
    décortiquer des codes ça et là.

    Je revenais sans cesses sur des explications,
    ou doc, lue et relue sur le net.

    Je code sous MikroC, je regardais également,
    les exemples livrés avec le compilateur.

    Et bizarrement, en revenant sur un PDF
    que j'avais pourtant lu et relu, cette fois-ci la formule
    qui est inscrite pour déterminer le temps
    à commencé à me parler.

    Donc, papier et stylo (je crois que c'est ce qui a commencé à me faire comprendre)
    et j'ai essayé de mettre par écrit cette formule avec un exemple.

    Une fois que j'ai pu associer la formule
    avec des exemples concrets,
    je voyais enfin la lumière.

    J'ai donc pris la peine de regarder mieux le datasheet du pic sur lequel
    je travaillais (là un pic 16f84) pour voir comment configurer les bits
    pour activer le timer0, déterminer le diviseur(scaler)
    activer et desactiver le timer0.

    toujours en comparant avec les codes en C que j'avais sous la main,
    notamment ceux de MikroC.

    Concretement:

    Je voulais faire une minuterie pour ma deuxième version d'insoleuse à LED UV.

    il me fallait un tic toutes les 1 seconde,
    -----------
    FB Aka Hearty - mai 2010
    µControleur PIC16F84A
    Quartz: HS, 04.0000 MHz
    Formule pour le temps :
    Temps=(256-valeur Décimale chargée TMR0) * 4 * (prescaler OPTION_REG) * 1/Oscillateur en Hz
    Ce qui donne:
    T=(256-0)*4*64*(1/4000000)= 0,016384 >> pour avoir 0,999424 sec à multiplier par cnt=61


    en début de la fonction main ()
    j'ajoute donc :

    Code:
    OPTION_REG = 0x85;          // Assigner prescaler sur TMR0  valeur 64   = 101 (pour quartz 4Mz)


    --------------
    Ici ma fonction d'interruption

    Code:
    //******************
    //Interruption
    void interrupt() {
         cnt++;                      // Incrémenter la valeur de cnt à chaque interruption
         TMR0   = 0;                 // Valeur décimale préchargée à soustraire à 256 pour Quartz 4Mhz O.
         INTCON = 0x20;              // Set T0IE, clear T0IF (Met à 1 le bit TMROIE , Efface(0) le Flag TMROIF de débordement d'interruption)
            }


    ici mes fonctions pour activer le Timer0 ou le desactiver
    Code:
    //********************
    // fonction activation /desactivation Interruption
    void setInt(){
           INTCON = 0xA0;               // active l'interruption TMRO
    }
    void resetInt(){
           INTCON = 0x20;               //désactive le TMR0
    }



    Et ici ma fonction pour utiliser le l'interruption
    Code:
    //*******************
    //comptage
    void compte(){                                  // cnt = 61 interruption pour faire ~1sec 61 x 0,016384
         if (cnt==61){                  // Condition du lancement de comptage
           led1 = ~led1;                            // Inverse etat PORTB LEDs
           seconde--;                               // décrémenter les secondes
           cnt = 0;                                 // Reset cnt
         
           }
          }


    Donc quand j'ai besoin de compter,
    avant je lance ma fonction setint
    et quand j'ai fini de compter
    je lance resetint.

    J'espère que cela aidera à enlever, au moins
    un peu le voile, pour certains.

    ;)


    Haut
     Profil  
     
    Afficher les messages depuis:  Trier par  
    Publier un nouveau sujet Répondre au sujet  [ 4 messages ] 

    Heures au format UTC + 1 heure


    Qui est en ligne ?

    Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité


    Vous ne pouvez pas publier de nouveaux sujets dans ce forum
    Vous ne pouvez pas répondre aux sujets dans ce forum
    Vous ne pouvez pas éditer vos messages dans ce forum
    Vous ne pouvez pas supprimer vos messages dans ce forum
    Vous ne pouvez pas insérer de pièces jointes dans ce forum

    Rechercher pour:
    Sauter vers:  
    cron
    Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
    Translated by Xaphos © 2007, 2008, 2009 phpBB.fr

    Signaler un bug, une faute d'orthographe | Me contacter | Plan du site | Partenaires


    Haut de page