Temps d'exécution

azwaa Messages postés 11 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Bonsoir ;

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

Utilisateur anonyme
 
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.
0
azwaa Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
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 ?
0
Utilisateur anonyme
 
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.
0
azwaa Messages postés 11 Date d'inscription   Statut Membre Dernière intervention  
 
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 ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
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 ?
0