J'ai besoin d'aide pour comprendre ce code retard!

G

Ghalebi

Guest
Salam à tous,J'utilise un PIC16F84A avec un oscillateur 4 MHz dans un but ..
et quelqu'un m'a nourri avec le code suivant afin de développer un délai 5 secondes ..Code:

; Délai de 5 secondes.

DELAY5

CLRF TMR0; START TMR0.

LOOPB

MOVF TMR0, W; LIRE EN TMR0 W.

SUBLW 0.160, le temps - 160

BTFSS ETAT, ZEROBIT; Vérifiez la diffrence

GOTO LOOPB; différence n'est pas nul

RETLW 0; temps est de 160, le retour.
 
S'il vous plaît aider ..

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Triste" border="0" />
 
Interne Fosc horloge est de 32 768Hz, prédiviseur 1:256

horloge MCU Fosc / 4 = 8192

Sortie du prédiviseur est 8192 / 256 = 32Hz

Une période est T = 1 / f = 1 / 32Hz = 0,03125 s

Le retard est T = 0,03125 x 160 x 160 s = 5s

Ce fragment de code est mauvais, test pour is'nt Zero souhaitable.

 
Merci beaucoup un homme, si clair ..

mais na pas u comme le fragment, peut u donner suggestion ur de l'améliorer ..

Merci beaucoup

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sourire" border="0" />
 
Voici le code:

Code:

; Délai de 5 secondes, Fosc 32 768Hz

DELAY5

CLRF TMR0; TMR0 Clear.

LOOPB

MOVF TMR0, W; LIRE EN TMR0 W.

SUBLW 0.160, le temps - 160

BTFSS STATUS, C; Check pas emprunter

GOTO LOOPB;

RETLW 0; temps est de 160, le retour.
 
Merci encore Monsieur le Président,
mais Quelle est la différence avec le contrôle de la transporter au lieu de bits bit zéro!

et qu'en est-il si je suis en train de Fosc = 4 MHz ..

Cordialement

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Sourire" border="0" />
 
Code:

;--------- Définitions des variables

# Define 0x20 RAM_Start

CBLOCK RAM_Start

counterLo

counterMi

counterHi

ENDC

;----------------------------------------------

; Fosc = 4MHz, délai 4,999994 s

;----------------------------------------------

delay5; 2 (de l'appel)

0x70 movlw 3;

movwf counterLo 4;

0x10 movlw 5;

movwf counterMi 6;

0xF9 movlw 7;

movwf counterHi 8;

boucle

INCF counterLo, F 1;

ÉTAT btfsc, Z, 3

INCF counterMi, F 4;

ÉTAT btfsc, Z, 6

INCF counterHi 7;

ÉTAT btfss, Z 9;

boucle goto 11;

0x00 retlw 10;
 

Welcome to EDABoard.com

Sponsor

Back
Top