PIC : interruption externe et interruption on change ?
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

PIC : interruption externe et interruption on change ?



  1. #1
    jlg_47

    PIC : interruption externe et interruption on change ?


    ------

    Bonjour,

    Je me pose une petite question concernant les modes d'interruption des pins des PICs 12Fxxx, 16Fxxx, 18Fxxx.

    On peut en effet programmer une pin pour interruption externe en choisissant si on veut l'interruption sur un front montant ou descendant, sur les 18Fxxx c'est souvent la pin RB0, sur les 12Fxxx c'est la pin GP2 ou RA2, etc ....
    Bon ça, ça marche très bien, j'utilise tous les jours.

    On peut aussi programmer un groupe de pins pour déclencher une interruption sur changement d'état; ça ça marche aussi très bien.

    Mais la pin d'interruption externe fait partie du groupe de pins d'interruption sur changement d'état.

    Ma question est donc :

    Puis je mélanger les deux modes?
    A savoir déclencher une interruption sur le front montant de RB0 et une interruption sur tout changement de RB1 par exemple sans être obligé de tester l'état des pins?


    Bonne journée.

    -----

  2. #2
    RISC

    Re : PIC : interruption externe et interruption on change ?

    Salut,

    Ta question est très sensée mais il n'est pas possible de faire une réponse générale qui s'appliquerait aux 500 PICs 8 bits que tu mentionnes...
    Peux-tu spécifier une référence de PIC particulière ?

    a+

  3. #3
    jlg_47

    Re : PIC : interruption externe et interruption on change ?

    Bonjour Risc,

    Disons le 12F683 ou 12F1840 puisque ce sont ceux qui m'intéressent dans l'immédiat, mais cela peut m'intéresser aussi pour d'autres PIC comme le 16F1829, le 18F2520 ou 18F2550 ..

    Dans le cas du 12F683, les 6 pins GP0 à GP5 peuvent être programmées pour une interruption sur changement d'état, donc passage de 0 à 1 ou de 1 à 0. Dès qu'une pin change d'état le flag GPIF est activé.

    La pin GP2 peut aussi être programmée pour une interruption externe en ayant le choix du sens (front montant ou descendant) qui provoquera l'interruption.
    Donc si on choisit front montant, un front montant sur GP2 activera le flag INTF.

    Maintenant si j'utilise les deux pour détecter une interruption externe sur GP2 et un changement d'état sur une autre pin, que se passe t-il exactement?

    Si j'écris:

    INTCON.INTE = 1; // valider les interruptions externes sur GP2
    INTCON.GPIE = 1; // valider les interruptions sur changement d'état de GPIO
    OPTION_REG.INTEDG = 1; // déclenchement interruption externe sur front montant de GP2

    Est que GP2 mettra à 1 uniquement INTF sur un front montant?
    ou bien est ce que GP2 mettra à 1 INTF sur un front montant ET GPIF sur les fronts montants et descendants?
    Le problème est que comme j'aurais beaucoup plus d'interruptions sur GP2 que sur l'autre pin, j'aimerai éviter d'avoir à traiter les interruptions inutiles provoquées par GP2 sur les fronts qui ne m'intéressent pas.

    La documentation n'est pas très précise à ce sujet, je pourrais essayer pour voir, mais si quelqu'un a la réponse cela m'éviterait de perdre du temps.



    Bonne journée.

  4. #4
    propic

    Re : PIC : interruption externe et interruption on change ?

    Bonjour;

    t peut le savoir en simulation,

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

    Re : PIC : interruption externe et interruption on change ?

    Salut,
    Je pense que dans ce cas, c'est ta seconde option, à savoir que les deux flags d'interruptions seront levés, et donc tes deux interruptions déclenchées. A toi de les gérer comme tu veux.

  7. #6
    jlg_47

    Re : PIC : interruption externe et interruption on change ?

    Citation Envoyé par propic Voir le message
    t peut le savoir en simulation,
    Merci mais je n'ai jamais utilisé le mode simulation, donc j'irai plus vite en essayant directement sur un PIC



    Bon week end

  8. #7
    jlg_47

    Re : PIC : interruption externe et interruption on change ?

    Citation Envoyé par inoxxam Voir le message
    Salut,
    Je pense que dans ce cas, c'est ta seconde option, à savoir que les deux flags d'interruptions seront levés, et donc tes deux interruptions déclenchées. A toi de les gérer comme tu veux.
    Ce qui voudrait dire que si on utilise l'interruption GPIO, l'interruption INTE n'a plus aucune utilité puisqu'elle fera double emploi avec une interruption de GPIO.

  9. #8
    propic

    Re : PIC : interruption externe et interruption on change ?

    si par exemple t'utilise La pin GP2 pour une interruption externe sur front montant va activera le flag INTF.
    et utilise les interruptions GIPO sur front descendant va activera le flag GPIF.

    dans ce cas l'interruption GP2 aura lieu quelque soit le niveau sur la pin concerné.

    alors vous bloqué dans la routine d’interruption, même si vous effacer le flag qui a provoquer l'interruption.

    mais vous pouvez géré c'est possibilité en activant et désactivant les interruptions au moment voulu.

  10. #9
    inoxxam

    Re : PIC : interruption externe et interruption on change ?

    Citation Envoyé par propic Voir le message
    alors vous bloqué dans la routine d’interruption, même si vous effacer le flag qui a provoquer l'interruption.
    Pas du tout, ce n'est pas le fait que la ligne soit à tel ou tel niveau qui provoque l'interruption dans les deux cas, c'est en cas de changement. Tant qu'il n'y a pas de front, pas d'interruption.

  11. #10
    RISC

    Re : PIC : interruption externe et interruption on change ?

    Salut,
    Citation Envoyé par jlg_47 Voir le message
    La documentation n'est pas très précise à ce sujet, je pourrais essayer pour voir, mais si quelqu'un a la réponse cela m'éviterait de perdre du temps.
    Je suis d'accord avec toi...il n'est parfois pas simple de déterminer avec précision quel est le mode prioritaire sur la broche / les registres.

    Le simulateur reste une solution délicate...doit on prendre le risque de tester sur le simulateur qui peut ne pas être 100% fidèle au vrai produit ?? C'est d'ailleurs parfois délicat avec des signaux externes ou il faut générer un script qui émule les signaux d'entrée...
    Finalement on passe plus de temps à simuler qu'à implémenter la solution cablée

    La plupart du temps le test sur une maquette (ou une plaque à trou) reste la méthode la plus efficace.
    J'utilises 2 ou 3 cartes pour faire mes tests car elles permettent rapidement de lever les doutes : la carte PICDEM 2 PLUS avec ses 3 supports (18/28/40) qui accepte au-moins 200 PICs 8 bits divers et variés (voire plus avec des adaptateurs par supports tulipes modifiés, la carte PICDEM LAB qui permet de gérer les petits boitiers et de faire tout un tas de cablages et la carte PICkit Low Pin Count Demo Board qui est livrée avec le Pickit2.

    a+

  12. #11
    inoxxam

    Re : PIC : interruption externe et interruption on change ?

    Citation Envoyé par RISC Voir le message
    Je suis d'accord avec toi...il n'est parfois pas simple de déterminer avec précision quel est le mode prioritaire sur la broche / les registres.
    Sur les PIC 8 bits, hormis ceux qui gèrent l'USB, il n'y a pas de priorité sur les interruptions. Cela dépend uniquement de l'ordre dans lesquelles tu les traites dans ta routine, c'est du soft bête et méchant.

Discussions similaires

  1. Interruption PIC
    Par warior31 dans le forum Électronique
    Réponses: 1
    Dernier message: 01/06/2011, 19h34
  2. probleme 2 interruption pic 18f4550 pic ->plante
    Par invite4ec38ea0 dans le forum Électronique
    Réponses: 5
    Dernier message: 28/08/2010, 07h51
  3. Réponses: 1
    Dernier message: 17/07/2010, 06h34
  4. PIC C 18F - Interruption 1S
    Par invite0098df65 dans le forum Électronique
    Réponses: 10
    Dernier message: 11/05/2010, 03h19
  5. interruption sur pic
    Par alainav1 dans le forum Électronique
    Réponses: 4
    Dernier message: 02/08/2009, 20h13
Découvrez nos comparatifs produits sur l'informatique et les technologies.