[Programmation] RESET interne d'un microcontrôleur
Répondre à la discussion
Affichage des résultats 1 à 22 sur 22

RESET interne d'un microcontrôleur



  1. #1
    achach

    RESET interne d'un microcontrôleur


    ------

    Bonjour,

    est t'il possible de RESETer en interne un microcontrôleur, j'utilise le PIC18F97J94. je veux faire un RESET seulement avec le software

    http://ww1.microchip.com/downloads/e.../30000575C.pdf

    Merci

    -----
    Dernière modification par achach ; 09/04/2018 à 16h26.

  2. #2
    DAUDET78

    Re : RESET interne d'un microcontrôleur

    Y a qu'a lire :
    § 5.0 page 88
    § 5.7 page 97
    Table 5-2 page 99
    RESET page 594
    je veux faire un RESET seulement avec le software
    Dans quel but ?
    J'aime pas le Grec

  3. #3
    naru2to

    Re : RESET interne d'un microcontrôleur

    Bonjour,
    Il doit y avoir une commande en assembleur pour le faire. Je le fais pour un PIC24F avec l'instruction asm("RESET"); (appelée dans mon code C)
    DAUDET78 je ne sais pas dans quel but achach veut l'utiliser, mais pour ma part je l'utilise dans 2 cas particuliers :
    - Pour passer en bootloader quand le système tourne en mode "super utilisateur"
    - Un client voulait que le système redémarre de lui même lors des changements de paramètres systèmes, sans avoir à faire un ON/OFF brutal (on séquence les alimentations)

  4. #4
    achach

    Re : RESET interne d'un microcontrôleur

    Bonjour,

    il a été demandé par mon client, il voulait reseter le soft via une commande avec l'USB.

    Merci

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

    Re : RESET interne d'un microcontrôleur

    Citation Envoyé par achach Voir le message
    il a été demandé par mon client, il voulait reseter le soft via une commande avec l'USB.
    Reseter le soft ? ou le µC ?
    S'il n'y a pas d'instruction "reset" tu te branches à l'adresse programme "qui va bien".

  7. #6
    achach

    Re : RESET interne d'un microcontrôleur

    Citation Envoyé par antek Voir le message
    Reseter le soft ? ou le µC ?
    S'il n'y a pas d'instruction "reset" tu te branches à l'adresse programme "qui va bien".
    non, je veux dire Reseter le microcontrôleur

  8. #7
    naru2to

    Re : RESET interne d'un microcontrôleur

    Je crois que l'instruction existe pour toutes les familles de PIC (et je pense que pour la plupart des microcontrôleurs en général, vous imaginez devoir utiliser une sortie pour agir sur l'entrée reset...)
    Donc comme je le disais il y a l'instruction asm("RESET"); ou la macro Reset(); qui doivent fonctionner

  9. #8
    antek

    Re : RESET interne d'un microcontrôleur

    Pour info (re)

    Les "vieux" 16F n'en ont pas, mais pas besoin d'une sortie sur le "reset" hard.
    Un branchement à l'adresse suffit.

  10. #9
    antek

    Re : RESET interne d'un microcontrôleur

    Et oui, le µC du demandeur contient l'instruction RESET, c'est à se demander si les gens lisent les doc.

  11. #10
    DAUDET78

    Re : RESET interne d'un microcontrôleur

    Citation Envoyé par antek Voir le message
    ..... c'est à se demander si les gens lisent les doc.
    C'était ma réponse #2 !
    Citation Envoyé par DAUDET78 Voir le message
    Y a qu'a lire :
    § 5.0 page 88
    § 5.7 page 97
    Table 5-2 page 99
    RESET page 594
    J'aime pas le Grec

  12. #11
    achach

    Re : RESET interne d'un microcontrôleur

    Citation Envoyé par naru2to Voir le message
    Je le fais pour un PIC24F avec l'instruction asm("RESET"); (appelée dans mon code C)
    j'ai arrivé à faire un Reset avec la macro RESET();

    je suis un peu curieux, je veux essayer la 1ere solution,comment faut'il faire pour utiliser l'instruction asm("RESET"); à appeler dans mon code C.

    j'utlise MPLAB X V3.05 avec le C18

    Merci

  13. #12
    naru2to

    Re : RESET interne d'un microcontrôleur

    Ben en incluant tel quel l'instruction asm("RESET"); dans le programme :
    Code:
    if(condition == TRUE)
    {
            asm("RESET");
    }

  14. #13
    DAUDET78

    Re : RESET interne d'un microcontrôleur

    Citation Envoyé par achach Voir le message
    j'ai arrivé à faire un Reset avec la macro RESET();
    je suis un peu curieux, je veux essayer la 1ere solution,comment faut'il faire pour utiliser l'instruction asm("RESET"); à appeler dans mon code C.
    Quel intérêt d’insérer du code ASM dans ton programme en C ?
    On fait ça quand on veut optimiser la vitesse d’exécution d'un programme .
    J'aime pas le Grec

  15. #14
    antek

    Re : RESET interne d'un microcontrôleur

    Citation Envoyé par DAUDET78 Voir le message
    Quel intérêt d’insérer du code ASM dans ton programme en C ?
    Peut-être que l'instruction n'existe pas en C ?

  16. #15
    achach

    Re : RESET interne d'un microcontrôleur

    Citation Envoyé par DAUDET78 Voir le message
    Quel intérêt d’insérer du code ASM dans ton programme en C ?.
    Je voulais juste tester cette solution, par curiosité

  17. #16
    naru2to

    Re : RESET interne d'un microcontrôleur

    Quel intérêt d’insérer du code ASM dans ton programme en C ?
    Par exemple quand il n'y a pas de macro définie mais personnellement je préfère utiliser une instruction asm pour les fonctions "spéciales" comme par exemple réinitialiser le watchdog, entrer en mode veille, c'est la même chose mais je trouve qu'au niveau de la lecture c'est plus simple pour les retrouver que si c'est une macro : les macro sont de la même couleur que tous les objet définis (#define) alors que l'instruction asm apparaît comme une instruction.

  18. #17
    DAUDET78

    Re : RESET interne d'un microcontrôleur

    Citation Envoyé par naru2to Voir le message
    les macro sont de la même couleur que tous les objet définis (#define) alors que l'instruction asm apparaît comme une instruction.
    Des gouts et des couleurs ....
    J'aime pas le Grec

  19. #18
    naru2to

    Re : RESET interne d'un microcontrôleur

    A chacun ses habitudes le code en est tout autant lisible et le fonctionnement inchangé, donc les deux solutions sont bonnes.

  20. #19
    achach

    Re : RESET interne d'un microcontrôleur

    Citation Envoyé par naru2to Voir le message
    Ben en incluant tel quel l'instruction asm("RESET"); dans le programme :
    Code:
    if(condition == TRUE)
    {
            asm("RESET");
    }
    il ne reconnait pas 'asm' faut ajouter une bibliothèque?

  21. #20
    naru2to

    Re : RESET interne d'un microcontrôleur

    Aucune lib spécifique mais peut être une option dans MPLAB, mais les compilateurs C18 et C30 sont obsolètes il me semble, j'utilise XC16 pour le PIC24F, peut être qu'avec XC8 pour le PIC18F ça fonctionnera

  22. #21
    PA5CAL

    Re : RESET interne d'un microcontrôleur

    Bonjour

    D'après le manuel de C18, avec ce compilateur le code devrait présenter la syntaxe suivante :

    Code:
    _asm
      RESET
    _endasm

  23. #22
    PA5CAL

    Re : RESET interne d'un microcontrôleur

    Sinon, toujours d'après ce manuel, il est prévu une macro pour exécuter l'instruction de RESET :

    Code:
      Reset();
    Dernière modification par PA5CAL ; 11/04/2018 à 08h56.

Discussions similaires

  1. [Programmation] Reset de microcontrôleur
    Par wiwiwiem dans le forum Électronique
    Réponses: 10
    Dernier message: 09/04/2017, 14h13
  2. Réponses: 6
    Dernier message: 17/12/2015, 20h46
  3. Choix d'un microcontroleur / carte à microcontroleur
    Par bisou10 dans le forum Électronique
    Réponses: 29
    Dernier message: 25/10/2013, 14h33
  4. Cablage d'un reset hard sur un microcontroleur
    Par Yoruk dans le forum Électronique
    Réponses: 7
    Dernier message: 26/03/2013, 14h05
  5. Utiliser la PIN reset sur un microcontroleur comme PIN "normal"
    Par Canaillou2k5 dans le forum Électronique
    Réponses: 11
    Dernier message: 13/08/2011, 12h23
Découvrez nos comparatifs produits sur l'informatique et les technologies.