Bonjour,
Je voudrais créer un système où il est nécessaire d'appuyer longtemps sur un bouton pour valider une commande.
Actuellement je sais faire ça avec un atiny et le code suivant.
Mais je trouve très dommage de mettre un composant programmable sur ma carte là où ça n'est pas nécessaire et j'ai l'intuition qu'il est possible de faire ça avec un circuit timer simple dans le genre du NE555. Sauf que je sèche sur la façon de de s'en servir. Aucun problème pour faire une tempo sur la sortie mais difficile temporiser sur l'entrée .Code:bool entree(void) { //fonction qui recupere l'état du bit d'entrée } void sortie(bool etat) { //fonction qui règle l'état du bit de sortie } void main(void) { uint16_t cpt=0; while(true) { delay_ms(1); //1 tour de boucle toutes le milisecondes. if ( entree() ) cpt++; //incremente cpt tant que l'entrée est à 1 else cpt=0; //Reset le compteur si l'entrée passe à 0 sortie( cpt>1000 ); //active la sortie si entrée à 1 depuis 1000ms, sinon desactive. if (cpt>1500) { //la sortie ne soit pas rester à 1 plus de 1s quelque soit l'entrée. sortie(false); cpt=0; while( entree() ); //attends que entree revienne à 0 avant de recommencer } } }
J'imagine que c'est un cas d'usage très courant. et qu'il existe donc des façon classiques de le gérer.
Quelqu'un a-t-il une idée sur une façon de cabler le 555 ou bien une suggestion de composant qui irait bien pour mon cas ?
-----