Le timer du Picaxe

fuse

Senior Member
Bonjour à tous,
Pour faire suite à mon tutoriel sur l'utilisation des interruptions, je vous propose un document détaillant le timer du Picaxe.
Si vous avez des renseignements sur le calcul de la valeur preload, merci de faire partager vos explications.:p
Ce dossier mérite encore des explications. Aidez moi pour l'améliorer.
Cordialement
 

PieM

Senior Member
Bonjour,

Ce que j'ai compris du preload :confused:

si F est la fréquence de l'oscillateur du Pic

la période de l'horloge du compteur interne est de 256/F

si on souhaite une impulsion toute les X secondes , il faut ( X/ 256*F ) impulsions primaires.

La valeur du preload sera donc de (65535 - impulsions primaires).

cas d'un oscillateur à 4000000 Hz et un pulse horloge souhaité d'une seconde:

65535 - ( 1/256 * 4000000)= 49910

pour un pulse tous les 0.2s:

65535 - (0.2/256 * 4000000)= 62410 de preload

Mais si la fréquence du picaxe est de 32 MHz le preload sera 40535 .

On ne peut pas dire que c'est évident :)
 

fuse

Senior Member
Bonjour PieM,
sur un Pic, l'utilisation des timers n'est pas une chose très aisée et des logiciels d'aide permettent le calcul de la valeur preload. A prioris, ce n'est pas le cas sur Programming Editor et c'est bien dommage....:(
En tout cas merci pour les informations, je peux compléter mon tutoriel.:)
 

PieM

Senior Member
Bonjour fuse,

Par contre, je n'ai pas eu l'occasion de tester dans la réalité ce que donnent ces calculs ...
En tout cas bravo pour ces tutos ! :)
 

fuse

Senior Member
Bonjour à tous,
Je teste tous mes programmes sur une platine à 28X1. Le Picaxe utilise un quartz de 4MHz...
En attendant de mettre à jour le tutoriel avec les informations de PieM, je m'interroge :confused:
En effet, la valeur preload t1s_4 (ou 49910) utilisée sur le chronomètre n'est pas très précise : au bout de quelques minutes, il y a un décalage de quelques secondes :eek:
A essayer chez vous pour me confirmer...

Cordialement
 

PieM

Senior Member
fuse,

l'horloge ralentit ?

Si c'est le cas, il est possible que ce soit la commande serout qui introduise un retard. En fait ce timer n'est pas un vrai timer indépendant :( ; les commandes readtemp, i2c, et servo le perturbent.
Certaines instructions provoqueraient l'inhibition des interruptions internes !

Il y a un post intéressant sur le sujet:
http://www.picaxeforum.co.uk/showthread.php?t=16413&highlight=timer&page=2

Il y a finalement plein de trucs à découvrir sur ces puces ! :confused:
 

fuse

Senior Member
Pour être exact, l'horloge ne ralentit pas, elle ne semble pas calibré sur 1 seconde... J'obtient un meilleur comptage avec un preload sur 51470 (0,9 sec)...
Merci pour le renseignement sur le post, il me semble normal que l'appel de routines spécifiques implémentées (readtemp par exemple) si elle semble simple avec Programming Editor est cependant une longue suite de commandes en assembleur susceptible d'interférer avec le timer...
Cependant mon programme très simple de chronomètre ne me semblait pas poser de problèmes...:( il faut croire que si, peut-être l'affichage LCD :confused:
En tout cas, je trouve Programming Editor peu adapté pour le timer... Je regrette que l'utilisation du timer ne se fasse pas avec une interruption (comme dans les programmes logipic ou Flowcode...). De plus, un Pic dispose de 3 timers, seul le timer1 semble disponible avec Picaxe.....
 
Top