1 minūte skaits

E

emkay

Guest
dear visu.

Kā ir counter kas skaita uz 1 minūti ... izmantojot TMR1 ir pic16f628a
i REK izmantot pārtraukt

iepriekš i izmantot kavēšanās minūtē no piclist kodu ģenerators.

Šeit kods 1 minūti kavēšanās

Kods:; Delay = 60 sekundes

; Takts frekvenci = 4 MHz; Faktiskais kavēšanās = 60 sekundes = 60000000 cikliem

; Kļūda = 0%cblock

d1

d2

d3

endcDelay1minute

; 59999994 cikli

movlw 0x23

movwf d1

movlw 0xCB

movwf d2

movlw 0x83

movwf d3

Delay1minute_0

decfsz d1, f

Goto 2 $

decfsz d2, f

Iet uz $ 2

decfsz d3, f

Iet Delay1minute_02 cikliem

Iet uz $ 14 velosipēdi (tostarp zvanu)

atgriezties

 
Atrodiet reģistra TMR1, labāk tomēr izmantot C valodai, ietaupīs daudz nepatikšanas.

 
Hi!

Izmantojot TMR1 un PIC galvenais oscilatoru pie 4MHz nav iespējams būt 60s uzskaites, jo maksimāli prescaler ir 8 (pulkstenis nodaļai).Pie 4MHz un prescaler = 8, TMR1 būs pārplūdes ik 524288 mums vai aproximattely katru 0,5 s, tas ir:

65536 x 1/fosc/4 x 8 prescaler

65536 x 1us x 8 = 524288 mums

Ja Jūs lietojat 32768Hz, kas TMR1 ārējo oscilatoru, jūs varat iegūt 16 s skaitīšanas (soļiem 244,141 mums)

Varat konfigurēt TMR1 (ar 32768 Hz xtal) līdz pārplūdes ik pēc 15 s, lai pārtrauktu un pieauguma mainīgs.Ja šādas mainīgo sasniedz 4, jums ir 60 s laiku (un skaidrs mainīgā pēc šīs).

Vēl viena ideja ir, izmantojot zemo frekvenču pulksteņa barošanas TMR1 ieejas, ļauj teikt 1000Hz.Tādā veidā jūs saņemsiet 60 s, kad TMR1 reachs 60000.

 
rkodaira rakstīja:
Ja Jūs lietojat 32768Hz, kas TMR1 ārējo oscilatoru, jūs varat iegūt 16 s skaitīšanas (soļiem 244,141 mums).
 
Salam,

Ja u vēlaties precīzi kavēšanās jebkuram pieteikuma darīt rkodaira teica, bet, ja u vēlas, lai pulksteņa izmantot 4MHz Xtal un / 8 prescaler tad u var atņemt kļūdu ik brīdi.

Ceru, ka tas tas ir tas ur lūdz, un ka es esmu palīdzējis u

 

Welcome to EDABoard.com

Sponsor

Back
Top