[Programmation] PIC16F : Comment appeler une fonction uniquement au reset externe?
Répondre à la discussion
Affichage des résultats 1 à 16 sur 16

PIC16F : Comment appeler une fonction uniquement au reset externe?



  1. #1
    AmigaOS

    PIC16F : Comment appeler une fonction uniquement au reset externe?


    ------

    Bonjour

    Sur ma carte j'ai un PIC16F18325 avec un bouton reset câblé au pin dédié, et même avec une résistance pull-up (non nécessaire). J'ai XC8.
    Mon problème est maintenant d'écrire le code qui permet d'appeler une fonction uniquement quand on appuie sur le bouton Reset. Donc pas quand le pic s'allume où qu'il y a je ne sais quel problème.

    Déjà est-ce possible de la lancer uniquement dans ce cas précis ?
    Et quoi écrire dans le code pour qu'il se passe quelque chose au reset ?

    J'ai quelques souvenirs d'IUT avec #pragma et Vector et le fait qu'il faut se brancher à une adresse particulière, mais je ne sais plus comment ça fonctionne exactement et quoi écrire dans quel ordre........ Je pense que là il ne suffit pas de regarder le datasheet.

    Merci

    -----
    Dernière modification par AmigaOS ; 02/08/2017 à 18h26.

  2. #2
    DAUDET78

    Re : PIC16F : Comment appeler une fonction uniquement au reset externe?

    Citation Envoyé par AmigaOS Voir le message
    Je pense que là il ne suffit pas de regarder le datasheet.
    Ben si ... Page 71 §5.11
    J'aime pas le Grec

  3. #3
    antek

    Re : PIC16F : Comment appeler une fonction uniquement au reset externe?

    Citation Envoyé par AmigaOS Voir le message
    Et quoi écrire dans le code pour qu'il se passe quelque chose au reset ?
    Tu peux aussi paramètrer l'entrée "reset" en I/O standard.
    Dernière modification par antek ; 02/08/2017 à 19h32.

  4. #4
    AmigaOS

    Re : PIC16F : Comment appeler une fonction uniquement au reset externe?

    Ok, mais je pense qu'il faut utiliser des #pragma et là je ne sais pas du tout comment écrire le code...

    Au moins maintenant j'ai déjà trouvé comment savoir de quel type de reset il s'agit avec le RESET STATUS BITS.^^

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

    Re : PIC16F : Comment appeler une fonction uniquement au reset externe?

    Citation Envoyé par AmigaOS Voir le message
    Ok, mais je pense qu'il faut utiliser des #pragma et là je ne sais pas du tout comment écrire le code...
    Moi, le soft, c'est plus mon job ....
    Mais au début du programme (qui est lancé par le reset), tu viens tester le bon bit de status et, suivant son état, tu lances l'appel de ta fonction .
    J'aime pas le Grec

  7. #6
    antek

    Re : PIC16F : Comment appeler une fonction uniquement au reset externe?

    Citation Envoyé par AmigaOS Voir le message
    Ok, mais je pense qu'il faut utiliser des #pragma et là je ne sais pas du tout comment écrire le code...
    Au moins maintenant j'ai déjà trouvé comment savoir de quel type de reset il s'agit avec le RESET STATUS BITS.^^
    En début de programme tu testes pour savoir s'il s'agit d'un MCLR.
    Mais quel intérêt ce fonctionnement ?
    Et ne pas oublier que tous les registres ont été re-initialisés.

  8. #7
    AmigaOS

    Re : PIC16F : Comment appeler une fonction uniquement au reset externe?

    Ah mais oui, je suis bête. J'avais oublié que de toute façon au moment du reset le programme recommence en haut. ^^
    Je vais donc essayé de faire comme ça.

    Mais quel intérêt ce fonctionnement ?
    J'aimerais qu'en appuyant le bouton Reset, le programme recommence depuis le début mais en commençant par exécuter une séquence de mesures un peu longue qu'il garde ensuite en mémoire EEPROM pour les autres fois qu’on allume le système.
    Et si un jour on est amené à changer un composant sur la carte, il faudra re-appuyer sur le bouton reset pour tout re-calibrer.

  9. #8
    AmigaOS

    Re : PIC16F : Comment appeler une fonction uniquement au reset externe?

    Voilà ça marche :
    if((PCON0&0b00001000)>>3==0) Fonction() ;


    Merci
    Dernière modification par AmigaOS ; 02/08/2017 à 21h31.

  10. #9
    antek

    Re : PIC16F : Comment appeler une fonction uniquement au reset externe?

    Citation Envoyé par AmigaOS Voir le message
    if((PCON0&0b00001000)>>3==0) Fonction() ;
    J'y comprend rien à vos truc évolués, moi c'est assembly . . .

  11. #10
    DAUDET78

    Re : PIC16F : Comment appeler une fonction uniquement au reset externe?

    Citation Envoyé par AmigaOS Voir le message
    Voilà ça marche :
    tant mieux !
    Tu vois, tout est dans la datasheet . Il faut la lire et la relire .....
    J'aime pas le Grec

  12. #11
    AmigaOS

    Re : PIC16F : Comment appeler une fonction uniquement au reset externe?

    J'y comprend rien à vos truc évolués, moi c'est assembly . . .
    Moi aussi j'aime bien le bas niveau, mais là... ^^

    Autre question :
    Est-il possible de forcer des pins du µC à 0 pendant le reset ?
    Parce que pendant que j’appuie il y a la moitié des pins qui passent à 1 jusqu'à ce que je lâche...
    Dernière modification par AmigaOS ; 02/08/2017 à 21h39.

  13. #12
    antek

    Re : PIC16F : Comment appeler une fonction uniquement au reset externe?

    Citation Envoyé par AmigaOS Voir le message
    Est-il possible de forcer des pins du µC à 0 pendant le reset ?
    Parce que pendant que j’appuie il y a la moitié des pins qui passent à 1 jusqu'à ce que je lâche...
    Non, mais on peut les mettre en entrée.

  14. #13
    DAUDET78

    Re : PIC16F : Comment appeler une fonction uniquement au reset externe?

    Citation Envoyé par AmigaOS Voir le message
    Est-il possible de forcer des pins du µC à 0 pendant le reset ?
    NON
    Parce que pendant que j’appuie il y a la moitié des pins qui passent à 1 jusqu'à ce que je lâche...
    Elles sont toutes en entrées, donc flottantes.
    Si ton hard les prends pour des "1", c'est qu'il est mal fait .
    J'aime pas le Grec

  15. #14
    AmigaOS

    Re : PIC16F : Comment appeler une fonction uniquement au reset externe?

    D'accord. Ça commande directement des mosfets donc on comprend pourquoi^^

  16. #15
    antek

    Re : PIC16F : Comment appeler une fonction uniquement au reset externe?

    Citation Envoyé par AmigaOS Voir le message
    Ça commande directement des mosfets donc on comprend pourquoi^^
    Et que peut-être le hard est de travers.
    Un schéma de tes sorties ?

  17. #16
    DAUDET78

    Re : PIC16F : Comment appeler une fonction uniquement au reset externe?

    Citation Envoyé par AmigaOS Voir le message
    D'accord. Ça commande directement des mosfets donc on comprend pourquoi^^
    Manque une 47K de PullDown sur la sortie ...
    J'aime pas le Grec

Discussions similaires

  1. Comment faire pour espionner un ordinateur de la maison? (je ne sais pas comment l'appeler)
    Par maxelectronique dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 28/04/2016, 18h30
  2. pic16f ou 18f + mémoire externe!
    Par petitete dans le forum Électronique
    Réponses: 13
    Dernier message: 15/05/2014, 16h56
  3. reset du pic16F par programme ?
    Par ilyasse192 dans le forum Électronique
    Réponses: 8
    Dernier message: 28/11/2013, 19h51
  4. Pic C Appeler une fonction dans une interruption
    Par invite976e6cb2 dans le forum Électronique
    Réponses: 8
    Dernier message: 02/12/2012, 11h01
  5. comment appeler une fonction ecrite en C++ sur Matlab
    Par invite5c0c3007 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 17/06/2005, 14h35
Découvrez nos comparatifs produits sur l'informatique et les technologies.