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

Problème lecture etat d'un bouton Qfix / programmation C



  1. #1
    mandrilux

    Problème lecture etat d'un bouton Qfix / programmation C

    Bonjour a tous

    je suis débutant avec qfix et j'ai un petit soucis avec mon programme

    la lecture du bouton pour allumer une ampoule ne prend pas toujours

    en gros il faut des fois appuyer plusieurs fois sur le bouton pour allumé la lampe et plusieurs fois pour l’éteindre

    comment peux t’ont résoudre cela ?

    merci d'avance

    voila le code de mon programme :

    Code:
    #include "qfixMiniBoard.h"
    #include "qfixLCD.h"
    #include "math.h"
    
    MiniBoard board;
    LCD led;
    bool etat =0;
    float dec;
    float temp;
    
     
    
    int main()
    {
    led.clear();
    
    board.powerOff(2);
    
    
    	while(1)
    	{
    		if(board.digital(0))
    		{
    			
    			etat = 1;
    			board.sleep(0.3);
    			
    		}
    		else
    		{
    			etat = 0;
    
    		}
    		
    		while(etat)
    		{
    			board.powerOn(2);
    			
    
    
    			if(board.digital(0))
    			{
    			etat = 0;
    			board.sleep(0.3);
    			}
    			
    		}
    		board.powerOff(2);
    		
    	
    		
    
    		
    	}
    	
    }

    -----


  2. Publicité
  3. #2
    gcortex

    Re : Problème lecture etat d'un bouton Qfix / programmation C

    C'est un problème de rebonds. Des tempo de 20ms devraient le corriger.

  4. #3
    mandrilux

    Re : Problème lecture etat d'un bouton Qfix / programmation C

    justement j'ai essayer avec 20ms , cela ne change rien

    j'ai l'impression que l'etat n'est lu que quand le programme tombe dessus

  5. #4
    gcortex

    Re : Problème lecture etat d'un bouton Qfix / programmation C

    Dans ce cas tu démarres les tempo à chaque changement d'état

  6. #5
    luc_1049

    Re : Problème lecture etat d'un bouton Qfix / programmation C

    Bonjour

    Lisez l'état dans une boucle un nombre suffisant de fois et ceux tant que l'état N et N-1 diffèrent ce qui filtrera les rebonds.
    Insérez une petite tempo entre chaque lecture.

    Dans le while(1) :
    lire état BP
    positionner en fct de l'état du BP

    => Ce sera mieux structuré !
    cdlt

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

    Re : Problème lecture etat d'un bouton Qfix / programmation C

    je n'ai pas compris ce que tu souhaite que je fasse

    Dans le while(1) :
    lire état BP
    positionner en fct de l'état du BP

  9. Publicité
  10. #7
    luc_1049

    Re : Problème lecture etat d'un bouton Qfix / programmation C

    Bonjour

    Actuellement vous avez un while avec 2 fois le test board;digital(0)...

    cdlt

  11. #8
    mandrilux

    Re : Problème lecture etat d'un bouton Qfix / programmation C

    concrètement
    je dois faire quoi ?
    j'ai du mal a comprendre

  12. #9
    luc_1049

    Re : Problème lecture etat d'un bouton Qfix / programmation C

    Bonsoir

    // variables globales
    char I;
    char reflet_port_bp;

    Pour l'anti rebond le principe est le suivant :

    I = 0;
    While(I++ < 40) // 40 valeur à ajuster
    {
    reflet_port_bp = lecture_port_bp;
    // insérer une petite boucle pour faire une tempo ou quelques instructions assembleur NOP via un appel en C
    ASM("NOP"); ASM("NOP");
    if (reflet_port_bp == lecture_port_bp; ) continue;

    else
    {// rebond cad oscillation de la valeur lue
    I=0; }
    }

    // traitement avec l'état stable de l'interrupteur BP

    if reflet_port_bp =1)
    { // xxxxxx
    }
    else
    { // yyyyyyyyy
    }
    Dernière modification par luc_1049 ; 26/03/2014 à 19h39.

Sur le même thème :

Discussions similaires

  1. PPE équiper et programmer un robot Qfix
    Par Panoramiz dans le forum Électronique
    Réponses: 2
    Dernier message: 23/02/2011, 18h28
  2. [PIC] - Ecriture/Lecture en EEPROM -> Etat du timer 0
    Par jorg1n dans le forum Électronique
    Réponses: 9
    Dernier message: 02/12/2009, 06h48
  3. Mémoriser l'état d'un bouton poussoir
    Par 4Ur[3]L dans le forum Électronique
    Réponses: 17
    Dernier message: 19/04/2009, 20h34
  4. Programmation Bouton
    Par Paulochon dans le forum Électronique
    Réponses: 3
    Dernier message: 08/06/2007, 11h09
  5. Transmettre état d'un bouton poussoir par radio
    Par FlyingMarco dans le forum Électronique
    Réponses: 5
    Dernier message: 30/11/2006, 14h12