Probléme de temps

Jacques ROBERT

Senior Member
Bonjour, qui peut me dire la durée d'éxécution du programme suivant ,jusqu'au premier "goto main
init:setfreq m32
main:
pulsin C.3,1,w2
pulsin C.2,1,w1
if w2 < 1150 then trd
if w2 > 1250 then trg
pulsout B.2,w1
pulsout B.4,w1
goto main
trd:
pulsout B.2,800
pulsout B.4,w1
trg:
pulsout B.2,w1
pulsout B.4,800
goto main
éxécuté avec un 14 M 2 .merci d'avance.
 

PieM

Senior Member
Bonjour,

Si vous utilisez des instructions qui dépendent d'une durée extérieure, telles que pulsin et pulsout, il est difficile de savoir la durée d'exécution du programme !
 

Jacques ROBERT

Senior Member
Merci de répondre si vite; la durée des infos rentrantes et sortantes varient de 1à2ms,
init:setfreq m32 est-il bien positionné pour que l'oscillateur interne fonctionne à 32Mhz?
Merci.
 

PieM

Senior Member
Oui le setfreq doit être au début, mais inutile de mettre init: qui est l'étiquette d'un sous programme...

A priori, dans votre programme, la durée maxi sera de l'ordre de 4 * 2ms plus quelques µs ...

Attention que pulsout B.2,800 ne fera que 1ms à 32 MHz
Il manque un goto main à la fin de votre trd:
 

Jacques ROBERT

Senior Member
OK j'ai oublié le "goto main" dans ma recopie mais il est bien dans le programme.
en fait mon problème est: les signaux rentrants (de 1à2ms) se répètent toutes les 20ms et "surprise" à la sortie sur B.2 et B.4 ils sont espacés de 40ms,j'en conclue
que le déroulement du programme dure + de 20ms.Qu'en pensez vous ?
 

PieM

Senior Member
OK j'ai oublié le "goto main" dans ma recopie mais il est bien dans le programme.
en fait mon problème est: les signaux rentrants (de 1à2ms) se répètent toutes les 20ms et "surprise" à la sortie sur B.2 et B.4 ils sont espacés de 40ms,j'en conclue
que le déroulement du programme dure + de 20ms.Qu'en pensez vous ?
Ce que vous constatez, ce n'est pas la durée d'exécution du programme ! mais le temps d'exécution, plus le temps d'attente des pulsin !

pulsin attend un front montant et passe a l'instruction suivante si rien ne s'est passé au bout de 82 ms ( si 32MHz)
Dans votre cas ces 40 ms doivent correspondre à l'attente des 20 ms du premier pulsin, puis 20 ms pour le second.
 

Jacques ROBERT

Senior Member
problème de temps

Bonsoir PieM.Avec un peu de retard ,votre réponse m'a donné à réfléchir et le résultat :il a suffit de décaler de 2 lignes le second "pulsin" et j'ai retrouvé mon
espacement de 20ms.Tout va bien ,merci encore.
 
Top