IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

Calcul du temps d'appui sur un bouton poussoir


Sujet :

Embarqué

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Janvier 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Lycéen
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2019
    Messages : 3
    Par défaut Calcul du temps d'appui sur un bouton poussoir
    Bonjour,

    Je travaille sur un Atmega8 et j’essaie de calculer a l’aide du Timer1 le temps qu’un bouton poussoir est appuyé mais je n'arrive pas a le faire est ce que quelqu'un pourrait m'aider.



    Merci d'avance

  2. #2
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 252
    Par défaut
    Salut,
    Je ne connais pas ton micro mais il y a plusieurs manières de faire :
    L'une d'elle est d'utiliser l'entrée de capture de ton TIMER1, c'est un réglage a faire pour que le TIMER1 démarre sur un changement d'état d'une entrée (un front).

    1. - Le principe c'est donc de configurer le TIMER1 pour qu'il déclenche sur le front montant d'une broche (où sera l'interrupteur.)
    2. - Créer une fonction d'interruption associé au flag de déclenchement sur le front montant car tu auras des trucs à y faire.
    3. - Dès que le micro verra le front, la valeur du TIMER1 (qui tourne indéfiniment) va être copié dans un registre (à voir le quel) et le programme principal va se retrouver dans la fonction d'interruption.
    4. - Une fois dans le programme d'interruption tu stockeras dans une variable la valeur du registre de copie (à voir le quel, le même que juste au dessus) puis tu reconfigures le TIMER1 pour qu'il déclenche sur le front descendant de la broche où est l'interrupteur.
    5. - Dès qu'il y aura un front descendant, la valeur du TIMER1 (qui tourne indéfiniment) va être copié dans un registre (à voir le quel mais c'est encore le même que juste au dessus)
    6. - Tu fais : la valeur du registre de copie (qui contient la valeur du Timer au front descendant) - la valeur dans la variable (et qui contient la valeur du Timer au front montant lorsque tu l'avais sauvegardé)


    Maintenant il faut lire la datasheet, chapitre Timer1 pour voir ce qu'il permet de faire. Je ne connais pas tous les micros et il se peut que ton micro ait des fonctionnalités qui font ça tout seul ! J'en doute mais on ne sait jamais ou peut être qu'une partie de ce que j'ai écrit au dessus soit déjà implémenté ? Faut voir, faut lire.

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/11/2010, 16h27
  2. Temps quand on appuie sur un bouton
    Par makflai dans le forum LabVIEW
    Réponses: 0
    Dernier message: 14/07/2010, 12h27
  3. Réponses: 1
    Dernier message: 02/03/2008, 21h34
  4. Intercepter l'appuie sur le bouton "Envoyer" d'Outlook
    Par Charette dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 14/10/2005, 14h24
  5. Comment détecter quand un utilisateur appuie sur le bouton Power ?
    Par Millenod dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 22/09/2005, 21h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo