anti rebond vhdl
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

anti rebond vhdl



  1. #1
    invite938b5933

    anti rebond vhdl


    ------

    bonjour,
    j'utilise une carte d'evaluation altera pour developper un programme en vhdl avec quartus2.
    Dans mon programme j'ai fait des blocs pour pouvoir gerer des choses avec des boutons poussoirs de la carte, seulement ca ne marche pas tres bien.
    Code:
    Library ieee;
    
    Use ieee.std_logic_1164.all;
    Use ieee.numeric_std.all;
    Use ieee.std_logic_unsigned.all;
    
    entity Choix_bits_adc is 
    		PORT (
    			Bouton1 : in std_logic;
    			Bouton2 : in std_logic;
    			Bouton3 : in std_logic;
    			B1 : out std_logic;
    			B2 : out std_logic;
    			B3 : out std_logic;
    			RESET : in std_logic
    			
    			);
    end Choix_bits_adc;
    
    architecture DESCRIPTION of Choix_bits_adc is
    signal signal_B1 : std_logic:='0';
    signal signal_B2 : std_logic:='0';
    signal signal_B3 : std_logic:='0';
    
    begin
    
    	Pchoixbits : process ( Bouton1, Bouton2, Bouton3)
    		begin
    	if (RESET ='1') then
    		if ( Bouton1 ='1' and Bouton1'event) then
    		signal_B1 <= not(signal_B1);--allumer led 1 quand actif
    		end if;
    	
    		if ( Bouton2 ='1' and Bouton2'event) then
    		signal_B2 <= not(signal_B2);--allumer led 2 quand actif
    		end if;
    	
    		if ( Bouton3 ='1' and Bouton3'event) then
    		signal_B3 <= not(signal_B3);--allumer led 3 quand actif
    		end if;
    	else
    	signal_B1 <= '0';
    	signal_B2 <= '0';
    	signal_B3 <= '0';
    	end if;
    	end process;
    	
    B1 <= signal_B1; 
    B2 <= signal_B2; 
    B3 <= signal_B3;
    	
    end DESCRIPTION;
    On m'a conseillé de faire un anti rebond pour que les boutons marchent du premier coup mais je ne sais pas trop comment faire.

    -----

  2. #2
    invite7a49d0d5

    Cool Re : anti rebond vhdl

    Salut,

    la solution la pus simple pour créer un anti-rebond logiciel (soft)
    c'est de générer une petite temporisation après chaque appui...
    exemple :
    Code:
    if (RESET ='1') then
    		if ( Bouton1 ='1' and Bouton1'event) then
    		signal_B1 <= not(signal_B1);--allumer led 1 quand actif
                    Delay_ms(50); 
    		end if;
    	
    		if ( Bouton2 ='1' and Bouton2'event) then
    		signal_B2 <= not(signal_B2);--allumer led 2 quand actif
                    Delay_ms(50);
    		end if;
    	
    		if ( Bouton3 ='1' and Bouton3'event) then
    		signal_B3 <= not(signal_B3);--allumer led 3 quand actif
                    Delay_ms(50);
    		end if;
    où la "temporisation" de 50ms "empêche" au programme de détecter les rebonds...

    vede
    ;O]
    _________________
    ...

  3. #3
    stefjm

    Re : anti rebond vhdl

    Citation Envoyé par vede Voir le message
    Salut,

    la solution la pus simple pour créer un anti-rebond logiciel (soft)
    c'est de générer une petite temporisation après chaque appui...

    où la "temporisation" de 50ms "empêche" au programme de détecter les rebonds...
    En VHDL?

    Cordialement.
    Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».

  4. #4
    DAUDET78

    Re : anti rebond vhdl

    Citation Envoyé par stefjm Voir le message
    En VHDL?
    Peu importe que ce soit en VHDL, en Qbasic, avec un moteur et une came, ou au fer à souder .... Ce qui compte, c'est le principe de fonctionnement de l'anti rebond.

    Je détecte la transition (tiens? il y a une action?) et je reteste 50 mS plus tard :
    • Tiens? l'action est toujours présente? c'est que c'était bien une bonne action .
    • l'action n'est plus là? c'est que c'était un rebond.

    En VHDL, (que je ne veux pas connaitre) on a généralement une horloge de base et ses sous-multiples. Il suffit d'échantillonner le bouton et de voir si les deux échantillons sont identiques (état "1" ou "0") ou différents (rebond de changement d'état)

    PS: en tablant sur 50 mS, on peut utiliser les plus merdiques des boutons .... sans que l'utilisateur s'aperçoive du retard.
    PS: On peut aussi utiliser un bouton inverseur et une bascule RS derrière. Ca existe une RS en VHDL ?
    Dernière modification par DAUDET78 ; 28/07/2010 à 16h04.
    J'aime pas le Grec

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

    Re : anti rebond vhdl

    Citation Envoyé par DAUDET78 Voir le message
    Peu importe que ce soit en VHDL, en Qbasic, avec un moteur et une came, ou au fer à souder ....
    VHDL n'est pas un langage de programmation mais de description parallèle de composant hard.

    Pour l'anti rebond, comme proposé par Daudet, il faut une horloge, qui sera dans la liste de sensibilité du process. On teste le front de cette horloge. Pour le signal utile, on ne teste que son niveau.
    Citation Envoyé par DAUDET78 Voir le message
    utiliser un bouton inverseur et une bascule RS derrière. Ca existe une RS en VHDL ?
    Bien sûr.
    On peut tout décrire.
    Moi ignare et moi pas comprendre langage avec «hasard», «réalité» et «existe».

  7. #6
    DAUDET78

    Re : anti rebond vhdl

    Citation Envoyé par stefjm Voir le message
    Bien sûr.
    On peut tout décrire.
    me voilà assuvé paton, je vé pouvoi domi !
    J'aime pas le Grec

  8. #7
    invite7a49d0d5

    Cool Re : anti rebond vhdl

    re ;O]

    sinon, tu pourrais "câbler" ton "anti-rebonds" en "hardware"
    cad avec un "RC", comme expliqué en détails sur cette page :
    http://www.ptitrain.com/electronique...02/poussar.htm

  9. #8
    DAUDET78

    Re : anti rebond vhdl

    Citation Envoyé par vede Voir le message
    sinon, tu pourrais "câbler" ton "anti-rebonds" en "hardware"
    Si on met un truc en VHDL ou un µC, c'est pas pour rajouter de la tripaille inutile autour ....

    Et je ne suis pas du tout d'accord avec le schéma donné dans ton lien . Un appuie sur le bouton branche une capacité de 10µF dont la charge est nulle sur l'alimentation :
    • La tension d'alimentation risque de chuter fugitivement
    • La pointe de courant va endommager le condensateur
    • La pointe de courant va endommager le contact

    Alors qu'il suffisait de mettre une 100 Ohms en série avec le bouton !
    J'aime pas le Grec

  10. #9
    invite7a49d0d5

    Cool Re : anti rebond vhdl

    j'ai "comme l'impression" que j'ai encore écris une connerie ;O] ;O] ;O]

    .

  11. #10
    DAUDET78

    Re : anti rebond vhdl

    Citation Envoyé par vede Voir le message
    j'ai "comme l'impression" que j'ai encore écris une connerie ;.
    C'est p'tit train le coupable ..... pas toi ! Par contre, vérifie les liens que tu donnes, sur Internet ...... on trouve le meilleur et le pire! C'est pour ça que j'ai bien expliqué pourquoi c'était le pire.
    J'aime pas le Grec

Discussions similaires

  1. anti rebond
    Par invite6af9789d dans le forum Électronique
    Réponses: 9
    Dernier message: 02/05/2011, 08h48
  2. Anti rebond
    Par willoup dans le forum Électronique
    Réponses: 3
    Dernier message: 24/03/2009, 21h32
  3. BP anti-rebond
    Par jum0034 dans le forum Électronique
    Réponses: 10
    Dernier message: 19/09/2008, 14h31
  4. anti rebond
    Par bouly94 dans le forum Électronique
    Réponses: 29
    Dernier message: 17/07/2007, 12h56
  5. Anti rebond
    Par zanzeoo dans le forum Électronique
    Réponses: 3
    Dernier message: 07/08/2004, 10h56
Découvrez nos comparatifs produits sur l'informatique et les technologies.