Bonjour à tous et à toutes.Débutant dans l'univers des pics et souhaitant apprendre leurs programmation je me suis lancé dans les cours de Monsieur Bigonoff avec le Pic16f84 .Je suis le cours assidument et la je me heurte dans le chapitre tempo à son calcul je bataille depuis hier je né toujours pas compris.Voila je vous explique je suis à la page 106 du cours et voici le sous programme
;***************************** ****************************** **********
; SOUS-ROUTINE DE TEMPORISATION *
;***************************** ****************************** **********
;---------------------------------------------------------------------
; Cette sous-routine introduit un retard de 500.000 μs.
; Elle ne reçoit aucun paramètre et n'en retourne aucun
;---------------------------------------------------------------------
tempo
movlw 2 ; pour 2 boucles
movwf cmpt3 ; initialiser compteur3
boucle3
clrf cmpt2 ; effacer compteur2
boucle2
clrf cmpt1 ; effacer compteur1
boucle1
nop ; perdre 1 cycle *256 *256 *2
decfsz cmpt1 , f ; décrémenter compteur1
goto boucle1 ; si pas 0, boucler
decfsz cmpt2 , f ; si 0, décrémenter compteur 2
goto boucle2 ; si cmpt2 pas 0, recommencer boucle1
decfsz cmpt3 , f ; si 0, décrémenter compteur 3
goto boucle3 ; si cmpt3 pas 0, recommencer boucle2
return ; retour de la sous-routine
si je suis son exemple avec 1 boucle de la page 105 et que j'exerce le meme mode opératoire avec la sous routine de temporisation qui est au dessus je suis loin des 500.000 micro secondes .On introduit un retard de 500.000 micro seconde ce qui equivaut à 500.000cycles puisqu'on tourne avec un quartz de 4MHZ;Je m'evertue a essayer de comprendre mais mon mode opératoire né pas le bon puisque je ne tombe pas avec les 500.000 micro secondes.C la raison pour laquelle je fais appel à vous messieurs les spécialistes pour m'éclairer sur ce problème et m'apporter une explication;Merci de votre aimable dévouement
-----