Temps d'exécution
azwaa
Messages postés
12
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonsoir ;
Je voudrais bien savoir comment je peux calculer le temps d'exécution de la boucle
pouvez vous m'aider s'il vous plait ?!
Merci d'avance
Je voudrais bien savoir comment je peux calculer le temps d'exécution de la boucle
Compteur EQU $30
Somme EQU S31
ORG 0000
Goto start
start
ORG 0005
clrf Somme
movlw 06 ;
movwf Compteur ;
boucle
movf PORTB,w ;
addwf somme,f ;
decfsz compteur,f ;
goto boucle
pouvez vous m'aider s'il vous plait ?!
Merci d'avance
5 réponses
-
Bonjour
Avec une large famille de PIC, c'est simple. Je pense que tu es dans ce cas :
- l'horloge système a une fréquence 1/4 de celle de l'oscillateur
- une instruction sans saut du compteur de programme dure 1 top d'horloge
- une instruction avec saut du compteur de programme (GOTO, DECFSZ si la condition est remplie) dure 2 tops d'horloge
Tu n'as qu'à mettre en face de chaque instruction sa durée et le nombre de fois qu'elle est exécutée, en étant prudent avec le DECFSZ qui est un peu spécial.
Remarque : tu es sûr que l'étiquette START est bien placée avant le ORG 0005 ? Moi, je l'aurais mise après. -
re-bonjour ;
J'ai oublié de précisé la famille de PIC . c'est 16FF84 ;
on a Fosc=20 Mhz alors 1cycle=4*T=200 ns
start
ORG 0005
clrf Somme
movlw 06 ;
movwf Compteur ;
boucle
movf PORTB,w ;
addwf somme,f ;
decfsz compteur,f ;
goto boucle
-une instruction sans saut du compteur de programme dure 1 top d'horloge
- une instruction avec saut du compteur de programme (GOTO, DECFSZ si la condition est remplie) dure 2 tops d'horloge
ça donne :
1+6*(2+6) =48 cycles
c'est ça le résultat ? -
Je ne sais pas d'où tu sors ta formule. Tu n'as sûrement pas mis la durée d'exécution en face de chaque instruction.
De plus, 1+6*(2+6), ça ne fait pas 48. -
oui justement ; j'ai besoin la formule pour la calculer
j'ai fait comme ça :
-une instruction sans saut du compteur de programme dure 1 top d'horloge (1cycle (l'instruction va répéter 6 fois )
- une instruction avec saut du compteur de programme (GOTO, DECFSZ si la condition est remplie) dure 2 tops d'horloge (et là on a 2 cycle de méme elles vont répéter 6 fois )
stp comment je peux trouver la résultat stp ? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Tu as besoin de la formule, mais c'est à toi de la trouver.
Peux-tu ré-écrire le programme en mettant à côté de chaque instruction son temps d'exécution et le nombre de fois où elle est exécutée ?