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

C Discussion :

Compteur de font montant ATMEGA16


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Par défaut Compteur de font montant ATMEGA16
    Bonjour, dans le cadre d'un PPE sur l'anémomètre, nous sommes amenés à compter le nombre de fronts montants dans un temps donné.

    Nous branchons un systèmes nous permettant d'avoir un signal carré, et nous voudrions savoir comment obtenir le nombre de fronts montants pendant un temps donné.

    Nous nous sommes inspirés d'un autre programme que nous avons trouvés, où il fallait utiliser les interruptions et un timer.
    A chaque font montant on compte incrémenter un compteur. Mais nous ne savons pas comment régler le TIMER0.

    Voilà je vous demande votre aide et vous remercie d'avance.
    Si vous avez des questions je répondrais volontiers pour vous éclairer, merci d'avance.

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    La réponse se trouve dans la documentation du micro-contrôleur, au chapitre sur les timers. Ton timer doit en toute logique posséder un mode où il génère une interruption chaque fois qu'un front montant a lieu sur une patte donnée. C'est possible qu'en anglais, la documentation parle d'input capture, et dans ton cas sur rising edge. La documentation t'expliquera comment choisir les valeurs opportunes des registres de configuration des timers pour avoir ce comportement. La suite se passe effectivement dans la routine d'interruption, où tu incrémentes un compteur à chaque fois que la routine s'exécute.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Par défaut
    Merci de ta réponse

    Oui je pense que je devrai trouver la documentation de l'ATMEGA16 sur internet, mais y aura-t-il marqué également comment choisir le temps durant lequel on fait l'acquisition ?

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    De rien

    Tu trouveras la documentation sur le site du constructeur directement.


    Je ne comprend pas ta question par contre... :
    mais y aura-t-il marqué également comment choisir le temps durant lequel on fait l'acquisition ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 10
    Par défaut
    Ce que j'entend par là, c'est que je voudrais régler le temps durant lequel on compte les fronts montant.

    C'est à dire, par exmeple, qui si on obtient 30 fronts montants, il faudrait savoir si ces 30 fronts montants on été comptés sur 4s, 5s, 200µs, 1200 ms ??!!

    Tu vois ce que je veux dire ?

  6. #6
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Oui, je vois.

    La première technique qui me vient à l'esprit est de déclencher un timer quand survient la première interruption de détection de front. Quand tu obtiens 30 fronts, tu regardes la valeur de ce timer à ce moment là et tu peux en déduire le temps nécessaire pour obtenir tes 30 fronts.

    Tu auras un soucis si le temps est trop long pour obtenir les 30 fronts. Dans ce cas, il faut rajouter une nouvelle interruption qui se déclenchera à chaque overflow du timer. Une variable s'incrémente pour indiquer le nombre d'overflows.

    Si par exemple ton timer déborde toutes les 5 secondes, tu pourras savoir avec ta variable * 5s + temps en cours dans le timer quelle aura été la durée totale.

Discussions similaires

  1. Bloc compteur des fronts montants ou descendants
    Par Noura2013 dans le forum Simulink
    Réponses: 4
    Dernier message: 18/07/2013, 18h55
  2. [JavaScript] Police Numérique digitale sans font(pour compteur par exemple)
    Par SpaceFrog dans le forum Contribuez
    Réponses: 7
    Dernier message: 03/08/2010, 09h55
  3. compteur sur front montant d'un contact sec
    Par boettez dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 28/08/2009, 12h52
  4. comment changer d'attribut de fonte dans un Tlabel?
    Par sb dans le forum Composants VCL
    Réponses: 3
    Dernier message: 21/08/2002, 16h53
  5. TextOut : comment changer de font
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 15/07/2002, 20h46

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