Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
On parle des Pics, sans rapport avec le langage ou la programmation

Modérateur : Jérémy

Precision dans les Timers
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#1 Message par Jérémy » mer. 27 juil. 2016 11:07

Bonjour à tous,

Je me pose la question suivante :

Pour faire une chrono d'une seconde,le plus précis possible, en utilisant l'oscillateur interne vaut il mieux :

- faire des INT toutes les millisecondes et donc compter jusqu’à 1000 .
-Ou faire des INT toutes les 100ms et compter jusqu’à 10 ?

Ces valeurs sont données à titres d'exemples pour comprendre le fond de la question.

Merci
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Precision dans les Timers
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 2589
Âge : 73
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#2 Message par paulfjujo » mer. 27 juil. 2016 14:52

Jérémy a écrit :Bonjour à tous,

Je me pose la question suivante :

Pour faire une chrono d'une seconde,le plus précis possible, en utilisant l'oscillateur interne vaut il mieux :

- faire des INT toutes les millisecondes et donc compter jusqu’à 1000 .
-Ou faire des INT toutes les 100ms et compter jusqu’à 10 ?

Ces valeurs sont données à titres d'exemples pour comprendre le fond de la question.

Merci



dans le 1er cas, ton programme principal disposera de 1mS (et meme un peu moins, avec la duree de restitution environnement)
pour traiter ton flag levé par ton timer ... et ton programme principale sera interrompu 1000 fois par seconde..
pouvant aussi interferer avec d'a'utres Interrup telle que RX UART Ou ...

Dans le second cas , le programme principal est "Tranquille" pendant au moins 100mS
et donc moins perturbé.
La precision de la seconde dependra surtout de la reactivité à traiter le flag seconde atteinte.
perso: je prendrai plutot l'interrupt à 100mS .. c'est le timer Hardware qui fait le plus gros boulot.
Aide toi, le ciel ou FantasPic t'aidera

Precision dans les Timers
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#3 Message par Jérémy » mer. 27 juil. 2016 22:16

Merci Paul pour ces précisions . ca confirme un peu se que je pensais ou préferais faire. je me dis que les erreurs sont moins nombreuses quand on met un longue INT .
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Precision dans les Timers
venom
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 953
Âge : 38
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#4 Message par venom » mer. 27 juil. 2016 22:40

Merci pour cette petite info :wink:






@++
Mon site web
Mon discord : venom#4888

Precision dans les Timers
cyril13110
Confirmé
Confirmé
Messages : 724
Âge : 41
Enregistré en : avril 2016
Localisation : 13

#5 Message par cyril13110 » jeu. 28 juil. 2016 09:09

salut,
intéressant, je pense modifier mes interruptions pour éclairage de l'aquarium pour calculer la seconde.
mais petite question, est ce qu'il n'y a pas de de décalage dans le temps?

Precision dans les Timers
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#6 Message par Jérémy » jeu. 28 juil. 2016 09:17

C'était mon arriére pensé dans ma question, mais je pensais plus à un décalage de la milliseconde.
C'est pourquoi il est préférable d'uiliser le timer avec la grande unité de temps . 10ms ou 100ms , laisse déja une marge de manouevre pour ne pas décalé l'interruption.

Par contre, pour un décalage dans le temps genre "sur une journée", la oui tu va avoir un gros décalage quand même. de l'ordre de la dizaine de seconde voir plus. La fréquence INT d'un PIC n'est pas fait pour de grande mesure de temps.
Il faut préférè un Oscillateur externe pour cela avec une grande précision. Mais même avec ca, c'est encore TOP, suivant le programme et la temperature extérieur etc ... un décalage est inévitable.

Pour gérer correctement le temps sur de longue période je ne vois que les modules style DS1307 (tutoriel ). Certains même ajuste leur fréquence en fonction en fonction de la T°, ce qui les rends très précis !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Precision dans les Timers
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1640
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#7 Message par Gérard » jeu. 28 juil. 2016 09:54

Avec la DS3231 qui a un capteur de T° intégré pour corriger l'oscillateur tu n'auras pas de souci de précision. Et vu le prix, faut pas se priver.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

Precision dans les Timers
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#8 Message par Jérémy » jeu. 28 juil. 2016 10:00

+1
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Precision dans les Timers
venom
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 953
Âge : 38
Enregistré en : avril 2016
Localisation : Klyntar
Contact :

#9 Message par venom » jeu. 28 juil. 2016 10:22

Ah bon. La température ambiante peux faire varier le temps du ds1307 par exemple ? Je ne savais pas sa

En effet dans ce cas là il vaux mieux partir sur un 3231 mais sa décale de combien pour 1 degré on le sais sa ?

Ou installé un dissipateur de chaleur ou un petit ventilo :p





@++
Mon site web
Mon discord : venom#4888

Precision dans les Timers
Jérémy
Administrateur du site
Administrateur du site
Messages : 2722
Âge : 44
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#10 Message par Jérémy » jeu. 28 juil. 2016 11:17

ce n'est pas la température qui fait varier la fréquence , mais la variation de température.

Si tu reste toujours à la même température, la fréquence ne changera pas (ou presque). Par contre à deux t° différentes il y aura changement de fréquence. C'est pourquoi il faut compenser !

Le dissipateur refroidit seulement, mais n’intervient pas dans les variations de température voir pire il les amplifie .
Imagine un circuit sous -tension à 50°C , pour une raison ou une autre tu te met a le refroidir; il va passer à 20°c et l'écart de t° provoque un changement de fréquence encore plus gros !
C'est en faisant des erreurs, que l'on apprend le mieux !!!


Retourner vers « Généralités sur les PICs »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 29 invités