Temps d'exécution
Fermé
azwaa
Messages postés
11
Date d'inscription
mercredi 24 décembre 2014
Statut
Membre
Dernière intervention
15 janvier 2015
-
14 janv. 2015 à 23:48
Utilisateur anonyme - 15 janv. 2015 à 09:54
Utilisateur anonyme - 15 janv. 2015 à 09:54
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.
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.
azwaa
Messages postés
11
Date d'inscription
mercredi 24 décembre 2014
Statut
Membre
Dernière intervention
15 janvier 2015
15 janv. 2015 à 00:24
15 janv. 2015 à 00:24
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
-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 ?
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.
De plus, 1+6*(2+6), ça ne fait pas 48.
azwaa
Messages postés
11
Date d'inscription
mercredi 24 décembre 2014
Statut
Membre
Dernière intervention
15 janvier 2015
15 janv. 2015 à 09:15
15 janv. 2015 à 09:15
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 ?
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