Temporisation

La temporisation est une fonction de perte de temps avec passage de paramètre.

Code source

;*********************************************************************
;                      SOUS-ROUTINE DE TEMPORISATION                 *
;*********************************************************************
;---------------------------------------------------------------------
; Cette sous-routine introduit un retard.
; Elle ne reçoit un paramètre, le nombre de boucle par la variable
; nb_tempo et n'en retourne aucun.
;---------------------------------------------------------------------
tempo
	;Avant la tempo donner la durée avec
;	movlw	1		; pour 2 boucles
;	movwf	nb_tempo	; Affectation à nombre de tempo

	movf	nb_tempo,w	; Récupération du nombre de tempo
	movwf	cmpt3		; Affectation à cmpt3
boucle3
	movlw	B'00001111'	; Valeur de la tempo 0xFF=MAX 0x0=MIN
	movwf	cmpt2		; Affectation à cmpt2
boucle2
	clrf	cmpt1		; effacer compteur1
boucle1
	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