pic => arreter le timer 0
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

pic => arreter le timer 0



  1. #1
    mmarc2007

    pic => arreter le timer 0


    ------

    Bonjour.

    Je fais un programme qui doit envoyer des informations via l'UART lorsqu'il y a une interruption du timer0 (débordement de TMR0).

    Le probleme c'est que le temps d'envoyer les informations est plus long que le timer0 et donc l'envoie des information est interrompue par une nouvelle interruption du timer...

    Donc j'aimerais "stopper" le comptage du registre TMR0. La seule méthode que j'ai trouvé c'est de mettre T0CS à 1 pour définir un oscillateur externe sur RA4 (RA4 étant relié à la masse), mais je trouve pas ça très "propre". Vous avez une autre méthode?

    -----

  2. #2
    invite7a49d0d5

    Cool Re : pic => arreter le timer 0

    Bonsoir,

    c'est quel PIC?
    théoriquement il "suffit" de désactiver l'interruption sur Timer0 pendant les calculs... puis après la ré-activer ...

    vede
    ;O]
    ________________________
    no pub...

  3. #3
    mmarc2007

    Re : pic => arreter le timer 0

    slt,

    c'est un 16f628A. J'avais penser à desactiver l'interruption mais comment se comporte le timer? Il continue de s'incrémenter? Il se réinitialise lorsque je reactive l'interruption?

    Merci pour ton aide !

  4. #4
    invite7a49d0d5

    Cool Re : pic => arreter le timer 0

    re ;O]

    oui, il continue de s'incrémenter...
    donc faut sauvegarder sa valeur lors de l'interruption...pour la "traiter"...
    ensuite il "suffit" de la "mettre" à 0 avant de re-activer son interruption...

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

    Re : pic => arreter le timer 0

    Salut !!!

    Le plus simple reste encore de stopper ton timer pendant l'envoie des données à l'UART.
    Comme l'envoie des données se fait dans l'interruption du Timer tu fais :

    interruption_timer 0
    {
    //STOP LE TIMER0

    //ENVOIE DES DONNEES VIA L'UART

    //START LE TIMER0
    }

    Je ne vois pas ou est le problème ??

    a+

  7. #6
    mmarc2007

    Re : pic => arreter le timer 0

    Toute la question est là... Comment stopper le timer?!

    Quel registre utilises-tu?

  8. #7
    kronanberg

    Re : pic => arreter le timer 0

    Ben ça depend qu'elle PIC tu utilises. Par exemple pour mon PIC18F2423 le bit de configuration pour declencher le Timer c'est :

    T0CONbits.TMR0ON = 1; // start the timer

  9. #8
    mmarc2007

    Re : pic => arreter le timer 0

    j'utilise un 16F628A comme c'est ecrit dans le message #3
    Je ne trouve pas le registre TMR0ON dans le datasheet, je pense que c'est lié a ton compilateur.

    Merci de ton aide.

  10. #9
    invite7a49d0d5

    Cool Re : pic => arreter le timer 0

    re ;O]

    c'est normal, car le bit TMR0ON n'existe pas sur un 628A...
    d'où ma suggestion:
    Code:
    void interrupt()
    {
      // TODO = envoi sur UART;
      TMR0 = 0;  // re-init val TMR0
      T0IF = 1;  // re-active interruption sur TMR0
    }
    vede
    ;O]
    ________________
    no pub...

  11. #10
    invite7a49d0d5

    Cool Re : pic => arreter le timer 0

    EDIT : (p'taing de 5 mn)

    correction : TOIF = 0
    Code:
    void interrupt()
    {
      // TODO = envoi sur UART;
      TMR0 = 0;  // re-init val TMR0
      T0IF = 0;  // re-active interruption sur TMR0 (efface flag)
    }

  12. #11
    gedonet

    Re : pic => arreter le timer 0

    Bonjour
    Pour un 16F628, on ne peut pas stopper le timer0, par contre pour les timer1 et 2 c'est oui.
    Comme l'a tres justement indiqué vede on peut desactiver l'interruption de TMR0 le temps neccessaire, mais de toute façon la transmission en hard, par USART, n'a besoin que du temps pour transferer le resultat dans TXREG, (un cycle) voir une dizaine de cycle en plus s'il faut calculer la parité.
    Gilles

Discussions similaires

  1. [PIC]- Création Timer 50 ns
    Par jorg1n dans le forum Électronique
    Réponses: 19
    Dernier message: 02/12/2008, 08h46
  2. PIC et timer 1
    Par invite4da20f6d dans le forum Électronique
    Réponses: 1
    Dernier message: 06/08/2008, 14h33
  3. [PIC]-Interruption / Timer / Led
    Par jorg1n dans le forum Électronique
    Réponses: 4
    Dernier message: 24/04/2008, 14h55
  4. timer à base de pic
    Par spirou38 dans le forum Électronique
    Réponses: 1
    Dernier message: 31/07/2007, 21h31
  5. timer dans un pic
    Par invite1a90427b dans le forum Électronique
    Réponses: 2
    Dernier message: 21/03/2007, 20h00
Découvrez nos comparatifs produits sur l'informatique et les technologies.