Débordements en langage C
flolarajasse
Messages postés
103
Date d'inscription
Statut
Membre
Dernière intervention
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je réalise un programme qui doit calculer la durée entre un front montant et un front descendant sur une broche de mon PIC18F4550.Pour cela, j'utilise le Timer1.Celui ci me retourne des valeurs, mais ce ne sont jamais les mêmes ; on m'a dit que c'était peu-être du aux débordements ; pouvez vous m'expliquer de quoi il s'agit car je n'ai pas tout compris, et comment "convertir" la valeur du Timer en une durée?
Merci d'avance =)
Je réalise un programme qui doit calculer la durée entre un front montant et un front descendant sur une broche de mon PIC18F4550.Pour cela, j'utilise le Timer1.Celui ci me retourne des valeurs, mais ce ne sont jamais les mêmes ; on m'a dit que c'était peu-être du aux débordements ; pouvez vous m'expliquer de quoi il s'agit car je n'ai pas tout compris, et comment "convertir" la valeur du Timer en une durée?
Merci d'avance =)
A voir également:
- Débordements en langage C
- Langage ascii - Guide
- Langage binaire - Guide
- Pascal langage - Télécharger - Édition & Programmation
- Langage visual basic - Télécharger - Langages
- Langage basic gratuit - Télécharger - Édition & Programmation
6 réponses
En effet je me suis mal expliqué ;
Je dois réaliser un programme permettant de calculer la durée entre un front montant et un front descendant d'un signal carré sur une broche de mon pic18F4550 que je fournis grâce à un GBF.La fréquence est quelconque, c'est moi qui la fixe.
Quand j'ai un front montant, je lance le Timer1 et quand j'ai un font descendant, je l'arrête et je lis sa valeur.
Mon problème est qu'il m'affiche des valeurs assez "aléatoires" qui changent même si je laisse la même fréquence.
Je voulais donc savoir de quoi cela pouvait-il venir?
Et ensuite je voulais savoir comment déterminer la durée, car ce n'est pas le résultat du compteur qui est affiché (logique).
En espérant avoir été assez clair...
Merci
Je dois réaliser un programme permettant de calculer la durée entre un front montant et un front descendant d'un signal carré sur une broche de mon pic18F4550 que je fournis grâce à un GBF.La fréquence est quelconque, c'est moi qui la fixe.
Quand j'ai un front montant, je lance le Timer1 et quand j'ai un font descendant, je l'arrête et je lis sa valeur.
Mon problème est qu'il m'affiche des valeurs assez "aléatoires" qui changent même si je laisse la même fréquence.
Je voulais donc savoir de quoi cela pouvait-il venir?
Et ensuite je voulais savoir comment déterminer la durée, car ce n'est pas le résultat du compteur qui est affiché (logique).
En espérant avoir été assez clair...
Merci
bon je ne comprend toujour pas !!! Mais c pas grave !!
A+
PS: pas besoin de tespliquer plus clairement .
A+
PS: pas besoin de tespliquer plus clairement .
Bonjour,
Si tu souhaites réellement de l'aide, expliques-nous ce qu'est ton "Timer".
Car à ma connaissance, ce n'est pas un type de donnée C standard.
Si tu souhaites réellement de l'aide, expliques-nous ce qu'est ton "Timer".
Car à ma connaissance, ce n'est pas un type de donnée C standard.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut.
Je crois qu'il y a peu de programmeurs PIC sur ce forum (d'ailleur je n'en suis pas).
De combien elles fluctuent tes valeurs ? Il est possible que que ton GBF ne soit pas stable (à 10 20% près) ou alors tu détectes mal le front. Toute mesure est entâché d'une certain incertitude, si tu fait if(ve>vs) //traitement front montant il y a 9 chance sur 10 que tu captes essentiellement du bruit.
Pour la conversion, il faut voir ce que sort le Timer. En C les timers sont soit en milliseconde soit en cycle. Il faut alors trouver la durée d'un cycle. Le mieux est de se référer à la documentation.
Je crois qu'il y a peu de programmeurs PIC sur ce forum (d'ailleur je n'en suis pas).
De combien elles fluctuent tes valeurs ? Il est possible que que ton GBF ne soit pas stable (à 10 20% près) ou alors tu détectes mal le front. Toute mesure est entâché d'une certain incertitude, si tu fait if(ve>vs) //traitement front montant il y a 9 chance sur 10 que tu captes essentiellement du bruit.
Pour la conversion, il faut voir ce que sort le Timer. En C les timers sont soit en milliseconde soit en cycle. Il faut alors trouver la durée d'un cycle. Le mieux est de se référer à la documentation.