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

comment faire UNE incrémentation avec un BP .



  1. #1
    massepower

    comment faire UNE incrémentation avec un BP .


    ------

    Bonjour tout le monde.

    Je souhaite faire la commande d'une variable à partir d'un bouton poussoir.

    j'ai ma variable X et si BP, X++

    et ce que je souhaite c'est que a chaque fois que j'appuis sur ce BP, j'ai l'incrementation donc je suis obliger de mettre ce dans un boucle while(1). Le probleme c'est que si je fais ca, le programme fera enormement d'++ avant que l'utilisateur ne relache le BP alors je voudrais savoir si il y a un moyen de faire le programme de maniere a ce qu'il ne fasse plus le calcule tant que le BP ne repasse pas à 0.

    Merci d'avance pour vos reponses.

    -----

  2. Publicité
  3. #2
    amoniaque

    Re : comment faire UNE incrémentation avec un BP .

    Citation Envoyé par massepower Voir le message
    Bonjour tout le monde.

    Je souhaite faire la commande d'une variable à partir d'un bouton poussoir.

    j'ai ma variable X et si BP, X++

    et ce que je souhaite c'est que a chaque fois que j'appuis sur ce BP, j'ai l'incrementation donc je suis obliger de mettre ce dans un boucle while(1). Le probleme c'est que si je fais ca, le programme fera enormement d'++ avant que l'utilisateur ne relache le BP alors je voudrais savoir si il y a un moyen de faire le programme de maniere a ce qu'il ne fasse plus le calcule tant que le BP ne repasse pas à 0.

    Merci d'avance pour vos reponses.
    Hello,

    Et sinon, tu utilises quoi comme µC? Compilateur ? À quoi ressemble ton schéma ?

    Allez, juste comme ça je dirais de mettre ça sur une entrée acceptant les interruptions, et tu incrémentes ta variable uniquement sur l'évènement voulu, à savoir le front (montant ou descendant) du signal venant de ton BP . Le tout sans oublier l'anti-rebonds ...

  4. #3
    carcan

    Re : comment faire UNE incrémentation avec un BP .

    Hello !

    je réponds par un exemple ... à toi de deviner ce qu'il fait :
    Code:
    //Touche +
          D = !input(PIN_A4);
          if ((D==1) & (old_D==0)) 
          {
             //choses à faire, par exemple X++;
          }
          old_D = D;
    la variable old_D doit être déclarée en static.

    A+
    Laurent

  5. #4
    massepower

    Re : comment faire UNE incrémentation avec un BP .

    @amoniac

    je vais utiliser un microship, compilateur, je ne sais pas encore, sinon pour le schema : ma question posé est sur un exemple, ce que je cherche a faire est plus compliqué. sinon je n'ai pas oublié l'anti-rebonds

    @carcan

    Merci beaucoup, je comprends le principe, c'est exactement ce qu'il me fallait.
    par contre je ne comprend pas pourquoi tu mets "!"devant input(PIN_A4); ?

    sinon je voulais savoir s'il existe qq chose dans ce genre en C ?

    IF (bpplus'EVENT AND bpplus = '1') THEN

    PS : c'est du langage VHDL.
    Dernière modification par massepower ; 21/06/2011 à 13h48.

  6. #5
    amoniaque

    Re : comment faire UNE incrémentation avec un BP .

    Citation Envoyé par massepower Voir le message
    @amoniac

    je vais utiliser un microship, compilateur, je ne sais pas encore, sinon pour le schema : ma question posé est sur un exemple, ce que je cherche a faire est plus compliqué. sinon je n'ai pas oublié l'anti-rebonds

    @carcan

    Merci beaucoup, je comprends le principe, c'est exactement ce qu'il me fallait.
    par contre je ne comprend pas pourquoi tu mets "!"devant input(PIN_A4); ?
    Car il suppose que ton niveau actif est à 0.

    À chacun sa méthode, moi j'dis : vive les interruptions .

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

    Re : comment faire UNE incrémentation avec un BP .

    je vois a quoi correspond les interruptions mais je ne sais pas comment cela s'utilise.

    mais mon code en VHDL, ca doit resemblé à un interruption non ?

    sinon tu peux me dire ou apprendre à faire des interruptions ?

  9. Publicité
  10. #7
    peter pan666

    Re : comment faire UNE incrémentation avec un BP .

    Salut

    Si c'est du vhdl tu peux utiliser directement un "rising_edge()" ou "falling_edge()" qui détecte respectivement les fronts montants et descendants d'une entrée.De toute façon avec n'importe quel code ton truc ressemble à:

    Si front montant (ou descendant) alors X++

  11. #8
    jiherve

    Re : comment faire UNE incrémentation avec un BP .

    Bonjour,
    que ce soit du C ou du VHDL il faudra d'abord faire un antirebond sinon il y aura plusieurs incrémentation par appuis ;ce sujet étant abordé de façon récurrente sur ce forum je ne m’étalerais pas plus.
    JR
    l'électronique c'est pas du vaudou!

  12. #9
    alainav1

    Re : comment faire UNE incrémentation avec un BP .

    bonjour,
    si tu comptabilises les fronts montants tu en génères un sur chaque rebond dont le plus simple c'est
    1/detection du front montant
    2/attendre un temps suffissant (temps maxi pendant lequel il peut avoir des rebonds)
    3/ suite du traitement
    ainsi les rebonds ne sont pas pris en compte.
    c'est le principe de l'antirebond logiciel
    cordialement
    Alain
    Décider de faire, c'est bien . Décider quand, c'est mieux !

  13. #10
    massepower

    Re : comment faire UNE incrémentation avec un BP .

    pour l'antirebond, je pensais mettre une capa sur mon BP, cela ne marche pas ?

  14. #11
    carcan

    Re : comment faire UNE incrémentation avec un BP .

    Hello !

    l'antirebonds se fait par soft avec un simple "delay" de qq millisecondes dans la boucle qui scrute tes entrées (ou dans la routine d'interruption).

    A+
    Laurent

Sur le même thème :

Discussions similaires

  1. Comment faire une porte ET avec des diodes ?
    Par zanzeoo dans le forum Électronique
    Réponses: 12
    Dernier message: 28/12/2016, 16h01
  2. Comment faire une IA avec un réseau de neurones?
    Par neokiller007 dans le forum Mathématiques du supérieur
    Réponses: 25
    Dernier message: 25/06/2010, 19h53
  3. [Brun] comment faire marcher 2 tv avec une parabole 1 tete
    Par 18mika dans le forum Dépannage
    Réponses: 8
    Dernier message: 11/10/2009, 13h18
  4. comment faire un mouvement de translation avec une bobine ?
    Par Opteron dans le forum Électronique
    Réponses: 6
    Dernier message: 14/04/2008, 20h08
  5. Résoudre une équation avec une fraction rationnelle, comment faire?
    Par neokiller007 dans le forum Mathématiques du collège et du lycée
    Réponses: 8
    Dernier message: 30/09/2007, 00h33
Découvrez nos comparatifs produits sur l'informatique et les technologies.