Beruflich Dokumente
Kultur Dokumente
Calcul temporisation
Page 1 / 2
Programme de temporisation:
Structure du programme:
Sous-programme tempo
Initialisation compteur3
Initialisation compteur2
Initialisation compteur1
compteur1 = compteur1-1
Jusqu compteur1 = 0
compteur2 = compteur2-1
Jusqu compteur2 = 0
compteur3 = compteur3-1
Jusqu compteur3 = 0
Retour
call
tempo
;appel de la temporisation
2 cycles
tempo
movlw
movwf
d'10'
cmpt3
; initialiser compteur3
1 cycle
1 cycle
movlw
movwf
d'100'
cmpt2
; initialiser compteur2
1 cycle
1 cycle
movlw
movwf
d'249'
cmpt1
; initialiser compteur1
1 cycle
1 cycle
nop
decfsz
goto
decfsz
goto
decfsz
goto
return
cmpt1 , f
boucle1
cmpt2 , f
boucle2
cmpt3 , f
boucle3
; perdre 1 cycle
; dcrmenter compteur1
; si pas 0, boucler
; si 0, dcrmenter compteur 2
; si cmpt2 pas 0, recommencer boucle1
; si 0, dcrmenter compteur 3
; si cmpt3 pas 0, recommencer boucle2
; retour de la sous-routine
1 cycle
1 ou 2 cycles
2 cycles
1 ou 2 cycles
2 cycles
1 ou 2 cycles
2 cycles
2 cycles
boucle3
boucle2
boucle1
Programmation PIC
Calcul temporisation
Page 2 / 2
Calcul de la dure du sous-programme pour un PIC tournant avec un quartz de 4MHz:
Un cycle processeur dure 4 cycles d'horloge, soit 1s.
Les instructions durent presque toutes 1 cycle.
Dans le programme ci-avant, certaines instructions durent 2 cycles: call, return, goto, decfsz si on saute l'instruction
suivante (qui est alors traite comme un nop).
Calcul du nombre de cycles:
La boucle la plus l'intrieur:
movlw
movwf
d'249'
cmpt1
; initialiser compteur1
1 cycle
1 cycle
nop
decfsz
goto
cmpt1 , f
boucle1
; perdre 1 cycle
; dcrmenter compteur1
; si pas 0, boucler
1 cycle
1 ou 2 cycles
2 cycles
boucle1