Durée initialisation picaxe.

Emile

Senior Member
Bonjour,

J'ai fait quelques tests hier soir,

Je voulais connaitre la durée approximative entre la mise sous tension d'un picaxe ici un 08M et par exemple l'allumage d'une led avec un programme simple comme :

main: high 1
goto main


J'ai pour mesuré cela alimenté un 08M par le biais de la sortie d'un autre 08M avec lequel j'ai mis comme programme :


main: pause 100
high 1
pause 100
low 1
goto main



Je me suis apercu en modifiant les valeurs de " pause " qu'il fallait environ 75 millisecondes afin que la led puisse s'allumer.

Mise sous tension <---- 75 ms -----> Allumage de la led

Cela me parait très long, un ami me disait qu'avec son pic à lui (programmé en ASM par un prog classique bigonoff ...) il arrivait à environ 10 ms.

Qu'en pensez vous ?

Merci

Emile
 

westaust55

Moderator
Des morceaux de PICAXE sont basés sur les microcontrôleurs de PIC développés par puce. D'une fiche technique typique de PIC :

The on-chip POR circuit holds the chip in Reset until VDD has reached a high enough level for proper operation. To take advantage of the POR, simply connect the MCLR pin through a resistor to VDD. This will eliminate external RC components usually needed to create Power-on Reset. A maximum rise time for VDD is required. See Section XX.0 “Electrical Specifications” for details. If the BOR is enabled, the maximum rise time specification does not apply. The BOR circuitry will keep the device in Reset until VDD reaches VBOD (see Section XX “Brown-Out Reset (BOR)”).
XX est d'adapter à la fiche technique particulière.


La période du cycle initial de temporisateur est énoncée en tant que la minute 40ms, maximum 65ms typique et 140ms.


En plus, le PICAXE prend 76mS à 4 mégahertz de fréquence d'horloge) pour faire de ce qu'il a besoin pour faire une fois l'alimentation d'énergie et des goupilles de remise ont répondu à leurs propres exigences. Cependant, c'est une fonction du code de botte tellement là n'est aucun gaurantee qu'il restera le même dans de futures révisions de progiciels.


Par conséquent, n'importe quels 08M pourraient faire initialiser a puissance-sur le retard n'importe où entre de 40ms et de 160ms plus les progiciels réels le temps (76ms à 4 mégahertz).


Ainsi un chiffre typique dans la théorie pourrait être 65 + 76 = 141ms à 4Mhz

D'autres sur ce forum ont précédemment fait les mêmes essais que vous-même et le temps total mesuré de 80 Mme qui suggère le temporisateur du cycle initial de Mme environ 40 et de Mme 40 plus encore pour des progiciels. Ce pourrait avoir été à 8Mhz.
 

Emile

Senior Member
Westaust thanks for your last reply can you write me in english please i dont have all understood !!

thanks so much !!


Emile


Il n'y a donc aucune solution pour réduire ce temps à l'allumage ?

Emile
 

PieM

Senior Member
Bonjour Emile,

Voilà plusieurs fils de discussion où cet aspect de rapidité d'exécution, de temps de démarrage semble être un soucis.
Tout système programmé aura besoin d'un minimum de durée pour "booter". En plus, je pense que dans le programme on commence par une phase de déclaration, puis d'initialisation, (interruptions, I2C, afficheurs, etc) avant le démarrage du programme proprement dit qui lui, va activer entrées et sorties. (et en supposant que ce dernier soit optimisé.)

J'ignore quel type d'application vous avez pour une telle exigence de vitesse, (navette spatiale ? :D ) mais la solution est peut être d'avoir une partie logique résolue de façon analogique.
Activer une sortie en fonction d'une valeur analogique se fait en quelques nanosecondes avec un AOP.
Sinon, il faut se rabattre sur une programmation en assembleur , sur un PIC, voire, un microcontrôleur plus rapide ...
 

Emile

Senior Member
Merci pour cette réponse ! tu peux me tutoyer :)


Le problème de l'assembleur c'est que cela me rebute un peu ... si je suis venu chez Picaxe c'est pour la facilité "relative" à mettre en forme un bout de code pour executer quelque chose.

L'assembleur je ne connais pas tu pourras peut etre m'en parler ...?

Il y a les fameux cours de bigonoff faudrait que je me motive...

Emile
 

PieM

Senior Member
Le problème est de savoir si le jeu en vaut la chandelle !
As-tu réellement besoin d'un système qui démarre en 5 ms ?

Car se mettre à l'assembleur n'est pas une chose très facile. Il faut digérer en plus un paquet de datasheet !

Je crois qu'en explicitant ton problème, il sera plus facile de trouver des solutions avec des outils moins complexes....
 

fuse

Senior Member
Bonjour à tous,
Je peux me tromper mais voila mon opinion sur la différence de rapidité de mise en fonctionnement :
Les Picaxes fonctionnent en bootstrap, c'est à dire qu'il sont préprogrammés avec un miniprogramme permettant de 'gérer' une liaison série...
Bien évidemment, la mise en route du bootstrap demande quelques millisecondes...
Si l'on programme en assembleur, souvent on l'utilise en programmant le pic avec un programmateur et un programme spécifique (le très connu IC prog).
Le pic ainsi programmé démarre directement sur le programme sans passer par le bootstrap...
Sans connaitre et apprendre l'assembleur je propose d'utiliser Logipic qui permet de créer le fichier assembleur puis héxa (celui que l'on injecte dans le pic). Ainsi programmé, le pic doit démarrer beaucoup plus rapidement.

Cordialement
 

Emile

Senior Member
Fuse j'ai vu Logipic c'est du grafcet comme sur Programming Editor en flowchart , as tu deja utilisé ce logiciel ?

Si oui quelle complexité et de quel materiel a ton besoin pour debuter un projet ?

Merci

Emile
 

fuse

Senior Member
Bonjour Emile,
Concernant Logipic, ce n'est pas exactement du graphcet mais du flowchart (ordinogramme pour les puristes ou organigramme).
La prise en main de Logipic est assez simple si l'on connait un peu les pics, un exemple est réalisé avec la construction d'un décodeur 7 segments : projet A7S ou d'un robot programmable. (rubrique Réalisations) et des exemples d'utilisation du logiciel dans la rubrique Coach.
Je connais assez bien Logipic;), je suis l'auteur de quelques 'coach' (tutoriel en français). Avant Programming Editor , j'utilisai Logipic que je trouve remarquable pour un logiciel libre... Je l'utilise encore pour programmer des Pics non bootables (le célèbre 16F84).
Cordialement
 

Emile

Senior Member
Ah le fameux 16f84 ... !

as tu un mail surlequel je peux te joindre afin de ne pas monopoliser le forum avec ce logiciel ?

Merci à toi

Emile
 

PieM

Senior Member
Je persiste, mais j'ai l'impression qu'Emile cherche à résoudre un problème qui n'en est peut être pas un.

En principe, on définit un projet avec ses impératifs de délai d'exécution, de temps de scrutation, de fréquence d'acquisition, de temps de réponse.
En fonction de cela, les solutions vont balayer soit la logique cablée analogique, ou programmée à base de µP ,microcontrôleur ou DSP.

J'ai un peu l'impression que là, il est question de grignoter des millisecondes un peu pour le fun ...

Le Picaxe est un excellent produit que j'utilise même pour des petites séries, sans m'embêter avec l'assembleur. Mais tout comme d'autres produits tels l'Arduino, ou le Cubloc que j'utilise beaucoup, il a ses limites.

Mais j'avoue n'avoir jamais rencontré de problème lié au temps de démarrage...

Après on peut effectivement programmer en assembleur, mais ce n'est plus du Picaxe, c'est du PIC Microchip.
 
Top