Potrebujem pomôcť pochopiť toto oneskorenie kód!

G

Ghalebi

Guest
[Color = blue] Salam všetci, ja som s použitím PIC16F84 s oscilátor 4 MHz pre nejaký účel .. a niekto mi najesť s nasledujúci kód s cieľom vytvoriť 5 sekúnd meškanie ..
Code:
, 5 sekundách. DELAY5 CLRF TMR0, START TMR0. LOOPB MOVF TMR0, W, prečítajte si TMR0 DO W. SUBLW 0.160, čas - 160 BTFSS STATUS, ZEROBIT, skontrolujte diffrence GOTO LOOPB, rozdiel nie je nula RETLW 0, čas je 160, return
Predpokladal, že frekvencie. z oscilátora je 32 kHz .. Potrebujem vedieť, ako on robil vzťah medzi jeho predpokladané frekvenciu a číslo 160 sa dostať 5 sekúnd meškanie .. TMR0 je nastavená na hodnotu 1:256 .. Akúkoľvek pomoc je appriciated .. Vďaka vopred:) [/color]
 
Vnútorná FOSCO hodiny je 32 768Hz, Prescaler 1:256 MCU hodiny FOSCO / 4 = 8192Hz Výstup z Prescaler je 8192Hz / 256 = 32Hz období je T = 1 / f = 1 / 32Hz = 0,03125 s Delay je T x 160 = 0, 03125s x 160 = 5s Tento fragment kódu je zlé, test Zero is'nt vhodné.
 
Thanx veľa človek, tak jasný .. ale u nepáčil fragment, môže u dať ur návrh na zlepšenie .. Díky moc:)
 
Tu je kód:
Code:
, 5 sekúnd oneskorenie, FOSCO 32 768Hz DELAY5 CLRF TMR0, jasná TMR0. LOOPB MOVF TMR0, W, prečítajte si TMR0 DO W. SUBLW 0.160, čas - 160 BTFSS STATUS, C, kontrola nie je požičiavať GOTO LOOPB, RETLW 0, čas je 160, return
Je funkčná s nízkym faktorom Prescaler taky. , bez nekonečné slučky.
 
Ešte raz vďaka, pane, ale čo je rozdiel oproti kontrole Carry bit miesto Zero bit! A čo, keď som pracoval na FOSCO = 4 MHz .. Ide o:)
 
[Code ];--------- VARIABILNÉ DEFINÍCIE # define RAM_Start 0x20 CBLOCK RAM_Start counterLo counter counterHi ENDC ;------------------------ ----------------------, FOSCO = 4MHz, delay 4,999994 s ;------------------ ---------------------------- delay5, 2 (od call) MOVLW 0x70, 3 movwf counterLo, 4 MOVLW 0x10, 5 movwf counter; 6 movlw 0xF9, 7 movwf counterHi, 8 slučky incf counterLo, F, 1 btfsc STATUS, Z, 3 incf counter, F, 4 btfsc STATUS, Z, 6 incf counterHi, 7 btfss STATUS, Z; 9 goto vedenia; 11 retlw 0x00 , 10 [/code]
 

Welcome to EDABoard.com

Sponsor

Back
Top