Minun täytyy auttaa ymmärtämään tämän viivästymisen koodi!

G

Ghalebi

Guest
Salam kaikille,Olen käyttäen PIC16F84A on 4 MHz: n oskillaattorin jotain hyötyä ..
ja joku kyllästynyt minut seuraavalla koodilla, jotta voidaan kehittää 5 sekunnin viive ..Koodi:

5 sekunnin viiveellä.

DELAY5

CLRF TMR0; START TMR0.

LOOPB

MOVF TMR0, W, lue TMR0 INTO W.

SUBLW ,160, TIME - 160

BTFSS STATUS, ZEROBIT; Tarkista diffrence

GOTO LOOPB; Ero ei ole nolla

RETLW 0; aika on 160, palaa.
 
Haluta auttaa ..

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Surullinen" border="0" />
 
Sisäinen Fosc kello 32 768Hz, PRESCALER 1:256

MCU Kello Fosc / 4 = 8192Hz

Tuloste PRESCALER on 8192Hz / 256 = 32Hz

Aika on T = 1 / f = 1 / 32Hz = 0,03125 s

Viive T x 160 = 0,03125 s x 160 = 5s

Tämä koodi fragmentti on huono, testi Zero is'nt suositeltavaa.

 
Kuin paljon mies, joten selvää ..

mutta u didnt kuten fragmentti, voisi u antaa ur ehdotusta parantaa ..

Suurkiitos

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Hymyillä" border="0" />
 
Tässä on koodi:

Koodi:

5 sekunnin viive, Fosc 32 768Hz

DELAY5

CLRF TMR0; Vapaa TMR0.

LOOPB

MOVF TMR0, W, lue TMR0 INTO W.

SUBLW ,160, TIME - 160

BTFSS STATUS, C; Lähtö ei lainata

GOTO LOOPB;

RETLW 0; aika on 160, palaa.
 
Kiitoksia jälleen sir,
mutta Mikä ero tarkkailun Carry vähän nollan sijasta vähän!

Entä jos olen työskennellyt Fosc = 4 MHz ..

Terveisin

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

;--------- VARIABLE MÄÄRITELMÄT

# define RAM_Start 0x20

CBLOCK RAM_Start

counterLo

counterMi

counterHi

ENDC

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

; Fosc = 4MHz, viive 4,999994 s

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

delay5 2 (osoitteesta call)

movlw 0x70; 3

movwf counterLo 4

movlw 0x10, 5

movwf counterMi 6

movlw 0xF9 7

movwf counterHi 8

tarjonta

incf counterLo, F, 1

btfsc STATUS, Z; 3

incf counterMi, F, 4

btfsc STATUS, Z; 6

incf counterHi 7

btfss STATUS, Z; 9

goto loop; 11

retlw 0x00, 10
 

Welcome to EDABoard.com

Sponsor

Back
Top