[Programmation] ISR watchdog non présent
Répondre à la discussion
Affichage des résultats 1 à 13 sur 13

ISR watchdog non présent



  1. #1
    oliviermer

    ISR watchdog non présent


    ------

    Bonjour,

    je possède un microcontrôleur atmega 169P et j'aimerais le sortir d'une veille (sleep_mode_pwr_down) après environ 1 minute.
    Or, après avoir parcouru sur internet diverses manières d'utiliser le watchdog, je me suis aperçu qu'à chaque fois il fallait utiliser l'interruption du watchdog.
    Malheureusement, sur l'atmega169P, il n'y pas d'interruption liée au watchdog...... Pas de WDIE (par exemple).
    Existe-t-il une solution à mon problème ? C'est à dire, arriver à environ un temps de veille de 1 minute, puis de réveiller le microcontrôleur en utilisant le watchdog !!!

    Merci d'avance pour vos réponses

    Voir P.51 à 55

    Atmega169p-16AU.pdf

    -----

  2. #2
    umfred

    Re : ISR watchdog non présent

    page 41
    In this mode, the external Oscillator is stopped, while the external interrupts, the USI start condition detection, and the Watchdog continue operating (if enabled). Only an External Reset, a Watchdog Reset, a Brown-out Reset, USI start condition interrupt, an external level interrupt on INT0, or a pin change interrupt can wake up the MCU.
    page 51
    If the reset period expires without another Watchdog Reset, the ATmega169P resets and executes from the Reset Vector.
    page 54-55 les tableaux de configuration avec le watchdog enable (WDE) et son flag (WDRF)

  3. #3
    oliviermer

    Re : ISR watchdog non présent

    Merci pour votre réponse mais je ne saisis toujours pas si je peux réveiller mon micro au-delà de 2 secondes à l'aide du watchdog!!!

  4. #4
    umfred

    Re : ISR watchdog non présent

    Avec le watchdog interne, a priori non, le max c'est 2s @3V. Mais il doit être possible de vérifier si 1 minute est passé depuis la mise en veille.
    Avant la mise en veille, mémoriser le nombre de cycle de watchdog à attendre avant de vraiment reprendre. Au réveil, lire ce nombre, le décrémenter, si il vaut 0, on poursuit, sinon on se rendort
    (voir peut-être cette application note => https://www.microchip.com//wwwAppNot...pnote=en591789

    Après ça peut être fait en externe par un composant qui génère ton temps
    Dernière modification par umfred ; 23/10/2020 à 15h49.

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

    Re : ISR watchdog non présent

    Merci encore pour réponse.
    Je comprends le principe que vous évoquez mais ce qui me dérange est le fait que lorsque le watchdog arrivera à sa valeur "timeout", ne va-t-il pas provoquer un reset du microcontrôleur ?
    Ou bien, si j'ai bien lu dans la note d'application dont vous m'avez envoyé le lien, il y a d'abord un reset du watchdog avant de provoquer le reset du micro. Et entre les deux resets, je peux lire et décrémenter ou non la variable !?

  7. #6
    oliviermer

    Re : ISR watchdog non présent

    Bonjour,

    En attendant, je me suis penché sur tout ça et j'ai mis en place le programme ci-joint, bien sûr en l'adaptant à mon microcontrôleur (atmega169p).
    Après plusieurs essais et modifications, je me suis aperçu que je ne rentrais jamais dans la condition "if (reset_flags & (1<<WDRF))" comme si le bit WDRF ne passait jamais à 1...
    Pourtant, j'ai bien essayé de forcer l'écriture de ce bit à 1 juste avant de rentrer dans le if, mais rien n'y fait....

    Quelqu'un pourrait m'expliquer pourquoi WDRF reste toujours à 0 ????

    Merci d'avance pour vos réponses.

    Nom : watchdog1.JPG
Affichages : 152
Taille : 68,0 Ko

  8. #7
    antek

    Re : ISR watchdog non présent

    Au cas où, n'y aurait-il pas un module timer actif en sleep ?
    L'électronique c'est comme le violon. Soit on joue juste, soit on joue tzigane . . .

  9. #8
    oliviermer

    Re : ISR watchdog non présent

    Bonjour,
    il est exact qu'il existe un module timer actif dans un des modes sleep (timer2), mais le soucis est qu'il consomme trop pour mon projet en fait....
    Je n'arrive pas à réduire sa consommation.C'est pour cela que je souhaite utiliser le timer du watchdog.
    Je précise que le micro fonctionne avec un oscillateur externe de 8Mhz.

  10. #9
    umfred

    Re : ISR watchdog non présent

    il faut vérifier si une des autres sources de RESET ne se produit pas, ce qui expliquerait que tu ne rentres pas par ta condition de Watchdog (les autres sources efface le bit du watchdog)t (je mettrais les tests avant la boucle infinie perso)

  11. #10
    oliviermer

    Re : ISR watchdog non présent

    Merci de votre réponse et de vous soucier de mon problème.
    Je vais tester cela et je vous tiens au courant !

  12. #11
    oliviermer

    Re : ISR watchdog non présent

    Finalement, j'avais oublié de mettre le fichier d'entête <avr/io.h>.... Enorme bétise de ma part, je reconnais !!!
    Donc après avoir fait les modifications et avoir tester plusieurs possibilités, je me suis aperçu qu'à chaque fois que le watchdog arrivait à timeout (WDRF à 1) un reset du micro se faisait....
    Sauf erreur de ma part, il est impossible d'empêcher la réinitialisation du micro. Qu'en pensez-vous ????

  13. #12
    umfred

    Re : ISR watchdog non présent

    bah c'est là le but du watchdog, si sa temporisation arrive à terme, il effectue un reset du micro (il y a une instruction à faire régulièrement dans le code normal pour réinitialiser la tempo et ainsi empêcher le reset par watchdog.
    Mais si le reset est causé par le watchdog, il y a le bit WDRF qui passe à 1; mais si, il y a une autre cause au reset (POR, BOR, ...) qui se produit peut après le redémarrage dû au watchdog (entrainant un nouveau reset du micro), ce bit est remis à zéro.

  14. #13
    oliviermer

    Re : ISR watchdog non présent

    Bonjour,
    donc on est d'accord, il est impossible d'utiliser le watchdog, du moins sans interruption liée, afin de retarder le réveil du microcontrôleur.
    Merci pour votre aide...

Discussions similaires

  1. Watchdog sur ATTINY ?
    Par Poseidon88 dans le forum Électronique
    Réponses: 6
    Dernier message: 05/12/2014, 08h28
  2. Dspic Watchdog
    Par invite049d0684 dans le forum Électronique
    Réponses: 0
    Dernier message: 22/06/2009, 10h51
  3. Watchdog évolué
    Par invite0f39f32f dans le forum Électronique
    Réponses: 1
    Dernier message: 27/04/2009, 19h42
  4. Watchdog Atmega8
    Par invited60b6f1f dans le forum Électronique
    Réponses: 0
    Dernier message: 19/08/2008, 01h33
  5. astuce watchdog pic
    Par inviteff450ba0 dans le forum Électronique
    Réponses: 1
    Dernier message: 13/04/2005, 09h55
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...