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

interruptions portB PIC



  1. #1
    romelec

    interruptions portB PIC


    ------

    Salut tout le monde:

    Actuellement en stage de fin de DUT GEII, je dois réaliser une carte de sécurité pour un petit robot bipède à 15 degrés de liberté, et communiquant avec un 68040 sur bus VME, le tout avec PIC 16F877: un petit stage quoi!

    Voilà ma question: L'interruption PortB4->7 est sur un changement de valeur sur le port. Donc il y a interruption sur front montant ET descendant.
    Mais il faut que je détecte 4 fronts montants d'interrupteurs.
    Comment faire pour qu'il y ait bien une interruption sur les fronts montants, mais pas sur les fronts descendents?

    -----

  2. Publicité
  3. #2
    Patrick

    Re : interruptions portB PIC

    Salut

    Je sais que ma réponse n'apportera pas de solution mais dans la doc du PIC c'est écrit qu'il n'y a aucun moyen de prendre en compte soit le front montant soit le front descendant, uniquement un changemant d'état.

    Mais peut être en scrutant dans le programme d'interruption ? (en tout cas n'oublie de remettre RBIF à 0 sinon on reste bloqué dans l'interrutpion, je dis ça car j'ai déjà eu le tour (l'inattention))
    Et attention au rebond des interrupteurs, pour y remédier soit tu te fais un petit circuit anti rebond avec des portes ET ou soit tu fais une tempo dans le programme d'interuption.

    Bon courage

    Patrick

  4. #3
    coyote_vill

    Re : interruptions portB PIC

    Salutation,
    J'ai pas trouvé d'interruption sur rb4 sur le 16f877 ?
    Par contre RB0 (patte 33 boitier dip) permet de générer une interruption à chaque changement d'état.
    Pour valider une interruption sur front montant
    le bit 6 du registre OPTION_REG doit être à 1.
    Seul un front montant génère une interruption; associe à cela un compteur et il y aura un événement tout les 4 fronts montant.
    C'est tout.

  5. #4
    romelec

    Re : interruptions portB PIC

    Salut,

    Coyotte, c'est pas vraiment ce que je dois faire.
    En fait, je dois détecter les fronts montants de 4 interrupteurs différents, qui sont donc branchés sur 4 entrées différentes.
    En fait, j'ai résolu le problème: lors de l'interruption on compare l'ancienne valeur sur le port avec la nouvele et on sait donc sur quelle entrée il y a eu un front (on peut meme détecter montant ou descendant).

    C'est d'ailleurs un des seuls reproche que je fait aux PICs, le nombre réduit d'entrées en interruption, mais il y a toujours moyen de faire autrement.

    Vous avez une idée du temps de rebond d'un microrupteur? (ref radiospares:665-972)

  6. #5
    Patrick

    Re : interruptions portB PIC

    Salut

    Je pense que le seul moyen de le savoir c'est de faire des essais, lorsque l'on prend un scruteur de clavier intégré 74C922 il faut nous même dimensionner le condensateur qui fixera la fréquence de "l'anti-rebond"

    L'ordre doit être de 1 a 10ms mais je ne suis pas sur !

    Patrick

  7. A voir en vidéo sur Futura
  8. #6
    Bigonoff

    Re : interruptions portB PIC

    Salut
    -----

    Tu peux également utiliser un jeu de diodes pour changer le niveau sur RB0 lorsqu'un seul de tes BP est pressé.

    Ainsi, tu utilises l'interruption INT0 au lieu de RB, et tu n'as l'interruption que sur le flanc qui t'arrange.

    A+
    Bigonoff
    Vive l'Internet libre

  9. Publicité
  10. #7
    romelec

    Re : interruptions portB PIC

    Salut,

    alors en fait j'utilide déjà RB0 pour faire le watchdog du "PC".
    En fait maintenant que le cahier des charges est un peu plus précis, je n'ai plus qu'à détecter un seul fromt montant.

    Ainsi, quand il y a une interruption je teste quelle entrée est à 1 et je désactive cette interruption. Dans ce cas là, le robot est en arrêt d'urgence.
    Il faudra appuyer sur un bouton lorsqu'on aura remis le robot en bonne position et ainsi remettre des variables, ainsi que les interruptions à leur état initial.

    Un autre petit truc encore: comme je l'ai dit, je dois communiquer avec le "PC" par le bus VME. Je pensais utiliser le port parallèle du 877, qu'est-ce que vous en dites, quelqu'un l'a-t'il d'jà fait?
    Le problème c'est qu'il faudrait un circuit pour la gestion données/adresses qui sont sur deux bus différents.
    Il n'existe pas des circuits qui font ça? Sonon, je pensais prendre un PAL, je pense que c'est faisable.


    @+

Sur le même thème :

Discussions similaires

  1. [PIC] PORTB,VAR ? (choisir le no du port avec une variable)
    Par Mkala dans le forum Électronique
    Réponses: 5
    Dernier message: 20/02/2010, 12h18
  2. Quand s'executent les interruptions d'un PIC 16F877???
    Par snorky7 dans le forum Électronique
    Réponses: 11
    Dernier message: 02/05/2008, 23h07
  3. interruptions en microprocesseur
    Par amineln dans le forum Matériel - Hardware
    Réponses: 3
    Dernier message: 16/10/2007, 21h10
  4. Interruptions externes
    Par Archange21 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 23/02/2007, 10h05
  5. interruptions PIC 18F452
    Par koaber dans le forum Électronique
    Réponses: 3
    Dernier message: 09/03/2005, 20h37
Découvrez nos comparatifs produits sur l'informatique et les technologies.