Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Cas d'utilisation de la fonction ext_int_edge()



  1. #1
    ccamille

    Cas d'utilisation de la fonction ext_int_edge()


    ------

    Bonjour,

    Je travaille sur un code en C existant pour la programmation d'un PIC16F676.
    Pour pouvoir mieux comprendre une partie de ce code, j'aimerai avoir des exemples d'utilisation de la fonction ext_int_edge().

    Florajasse m'a expliqué dans un autre post ceci :
    Re : Référentiel des fonctions en langage C pour microcontrôleur

    --------------------------------------------------------------------------------

    Bonjour ccamille,
    Sous quel logiciel programmes-tu?Tu peux aller voir dans l'index, il y a beaucoup de fonctions.
    Quant-à ext_int_edge (H_TO_L)., elle signifie que tu autorises les interruptions externes (PORTB) sur front descendant.
    Voilà
    Qu'entend-on par front descendant?

    Je joins un bout de la fonction ou ext_int_edge me pose ces problèmes de compréhension.
    Code:
    if (input(PIN_BP))  //BP le bouton poussoir
            {
            etat_inter = 0;   //etat_inter est un booléen
            ext_int_edge( H_TO_L );
           	}
    else
            {
            etat_inter = 1;
            ext_int_edge( L_TO_H );
            }
    J'apprécierai beaucoup votre aide.

    -----

  2. Publicité
  3. #2
    sdec25

    Re : Cas d'utilisation de la fonction ext_int_edge()

    Bonjour,
    front descendant = passage d'un état haut (5V) à un état bas (0V).

  4. #3
    ccamille

    Re : Cas d'utilisation de la fonction ext_int_edge()

    Merci sdec25, je comprends mieux ce qu'est un front maintenant.

    J'ai toutefois du mal à comprendre ce qui se passe dans ma fonction...
    Code:
    if (input(PIN_BP))  //BP le bouton poussoir
            {
            etat_inter = 0;   //etat_inter est un booléen
            ext_int_edge( H_TO_L );
           	}
    else
            {
            etat_inter = 1;
            ext_int_edge( L_TO_H );
            }

    Est-ce qu'il faut traduire son action de cette façon :
    • Si le bouton poussoir est enfoncé, il n'y a pas d'interruption, le circuit est alimenté.
    • Si le bouton poussoir est relâché, il y a interruption, le circuit n'est plus alimenté.

  5. #4
    sdec25

    Re : Cas d'utilisation de la fonction ext_int_edge()

    A mon avis etat_inter = état interrupteur et non état interruption.
    Apparemment quand le bouton est pressé, l'entrée vaut 0.
    Quand l'entrée est haute, on appelle ext_int_edge sur front descendant pour avoir une interruption au prochain changement. Idem pour l'inverse.

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

    Re : Cas d'utilisation de la fonction ext_int_edge()

    Salut sdec25,

    tu dis :
    Apparemment quand le bouton est pressé, l'entrée vaut 0.
    Quand l'entrée est haute, on appelle ext_int_edge sur front descendant pour avoir une interruption au prochain changement. Idem pour l'inverse.
    Je ne comprends pas : pour moi si l'entrée vaut 0 c'est qu'elle est basse, non?

  8. #6
    kronanberg

    Re : Cas d'utilisation de la fonction ext_int_edge()

    Salut !!

    Pour moi, je pense plutot que ce bout de code permet l'initialisation de l'interruption. Il n'est surement pas à utiliser dans ton programme par la suite.
    Il permet d'initialiser si l'entrée (relié au Bouton Poussoir) est au niveau haut une interruption lorsqu'il y aura un front descendant et si l'entrée est au niveau bas, les interruptions se déclencheront sur un front montant.

    Sinon la meilleur solution pour que tu comprennes bien le bout de code est d'aller essayer d'initialiser toi même cette interruption en configurant directement les registres.

    à+

  9. Publicité
  10. #7
    ccamille

    Re : Cas d'utilisation de la fonction ext_int_edge()

    Je crois que tu as raison kronanberg. Cette fonction n'est même pas utilisée dans le main() donc elle doit agir simplement pour initialiser l'interruption.

    Je dois être sacrément fatiguée pour ne m'en rendre compte que maintenant!

    Merci beaucoup de m'avoir éclairé ^^

  11. #8
    kronanberg

    Re : Cas d'utilisation de la fonction ext_int_edge()

    Pas de soucie !! On a tous le droit d'être un peu fatigué !!

    tchao

Discussions similaires

  1. [Blanc] Manuel d'utilisation
    Par cdomicol dans le forum Dépannage
    Réponses: 2
    Dernier message: 22/09/2008, 20h39
  2. Capture et gestion de cas d'utilisation
    Par Yoghourt dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 25/01/2008, 18h42
  3. Problème d'utilisation XP
    Par cyrmoun dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 26/01/2004, 18h55
Découvrez nos comparatifs produits sur l'informatique et les technologies.