Bonjour
J'ai besoin d'aide pour un petit truc en C.
Voici mon problème :
Je veux qu'un bouton réagissent différement en fonction de combien de temps ou comment on appuie dessus.
Je veux qu'au bout de 3 secs (environ) d'appuie il se produise quelque chose.
Et il faudrait aussi que si j'appuie 2 fois de suite assez rapidement il se produise autre chose. Un peu comme un clique long avec la souris ou un double clique.
J'ai fais cette fonction :
Code:int compte_temps_ouverture(void) { int var_temps=0; int var_temps2=0; int var_temps3=0; int resultat; while (PORTA.4 == 1) { } // attente d'un appui delay_ms(25); // anti-rebonds var_temps = 0; while (PORTA.4 == 0 && var_temps<100) // teste si encore appuyé { delay_ms(25); var_temps++; // "compte" le temps } if(var_temps<100) { while(PORTA.4==1 && var_temps2<35) { delay_ms(25); var_temps2++; } if(var_temps2<35) { while(PORTA.4==0 && var_temps3<100) { delay_ms(25); var_temps3++; } if(var_temps3==100) { resultat=0; } if(var_temps3<100) { resultat=1; } } if(var_temps2>35) { resultat=3; } } if(var_temps==100) { resultat=0; } delay_ms(25); // anti-rebonds return resultat; }
Mais elle est assez énorme et ne fonctionne pas parfaitement.
Si quelqu'un pouvait m'aider à la perfectionner ce serait super !
(J'utilise MPLAB v7.5, CC5X, une PICDEM 2 plus demo board)
Merci d'avance.
EDIT : Et bien sur si vous voyez un moyen beaucoup plus simple pour que sa fonctionne n'hesitez pas! Je m'en fou de conserver ce que j'ai déjà fait.
-----