[ djokule @ 30.10.2008. 07:57 ] @
| Povezao sam Kristal na pinove za TMR1, Inicijalizovao TMR1 napisao rutinu za sat i to radi, ali mi sat zaostaje 15 sekundi (po minutu). Kada postavim preskaler na 1:1 TMR1 tacno prekoraci tako da mi minut ispadne 15sekundi (za minut) a kada postavim 1:4 on prekoraci tako da za minut dobijem 75s a trebalo bi 60s? Postavljao sam i keramicke kondenzatore od kristala ka masi 22pF bio je prebrz, pa 33pF prespor. Da li se neko susretao sa tim problemom i zna resenje? Hvala unapred!!!!
Inicijalizacija TMR1 izgleda ovako:
;InitTMR1
RTCinit
movlw 80h ; Da bi se tajmer aktivirao na 32768Hz
movwf TMR1H ; za 1s prekoracenje
clrf TMR1L ; Brisanje niskog registra Timera1
movlw B'10101011' ; Konfiguracija za eksterni klok
movwf T1CON ; Konfiguracioni registar
clrf sekundi ; Brise fajl sekundi
clrf minuti ; Brise fajl minuti
clrf sati ; Brise fajl sati
bsf PIE1, TMR1IE ; Ukjlucivanje Timera1
bsf IPR1,TMR1IP ; Visok prioritet Timera1 |
[ VRadule @ 31.10.2008. 17:25 ] @
S obzirom da kazes da se brojanje menja u zavisnosti od kondezatora u oscilatoru,
problem je najverovatnije hardverski.
Nije mi pri ruci ni jedan pic datasheet, ali po secanju za 32768 se uz kondenzatore
postavlja i jedan otpornik. Pogledaj u datasheet-u za tvoj PIC....
[ VRadule @ 03.11.2008. 00:01 ] @
Takođe obrati paznju na CONFIG3H registar i LPT1OSC bit u njemu.
On postavlja TMR1 oscilator u low power mode koji je neophodan za 32768 kristal.
[ elektrostudio @ 15.11.2008. 21:22 ] @
jesi li resio problem? Dosta sam radio sa PIC-ovima i napravio precizne vremenske baze te mi treba info da li si resio problem. Licno mislim da nije problem u hardware-u vec u software i cfg za PIC
[ barum @ 16.11.2008. 12:34 ] @
Bit T1SYNC (T1CON<2>) treba biti postavljen na 1 da ne bi bilo ometanja zbog sinhronizacije. Preskaler treba da bude 1:1. Preporučeni kondezatori su 27 pF. Veća vrednost (recimo 33pF) povećava stabilnost oscilovanja ali povećava i početno vreme potrebno za započinjanje oscilacija. Vrednosti 22-33pF nemaju uticaja na frekvenciju oscilovanja.
Dakle, samo bi trebalo da je bit T1SYNC.
[ djokule @ 17.11.2008. 08:04 ] @
Resio sam problem ali nije bio u pitanju T1SYNC. Problem uopste nije bio softverski. Sve sam softverski podesio da ne bude smetnji. Prescaler ne moze da bude 1:1 jel je tad interapt na 15s, vec sam ga stavio na 1:4 i to je OK. Samu vremensku bazu sam podesavao dodajuci 100KOhm -a i Trimer kondenzator do 47pF redno prema masi. Tako mogu precizno da podesim bazu, ali je vreme prooscilovanja malo duze(sekund dva) nakon toga radi ok. Hvala svima na savetima i ako je potrebna jos neka informacija recite! PozZz
[ barum @ 17.11.2008. 17:25 ] @
Znači nije 32.768Hz kristal bio u pitanju već 132KHz.
[ VRadule @ 17.11.2008. 18:28 ] @
Citat:
barum: Znači nije 32.768Hz kristal bio u pitanju već 132KHz.
Ili je to što kaže Bojan ili je eksternim delovima 32768 oscilator nateran na 4-ti harmonik.
Za 32768 kristal,prescaler mora biti 1:1 za preload timera %1000 0000 (na pola).
[ socaoh @ 19.11.2008. 07:43 ] @
Zdravo,
moze neko da mi kazde dali ima na trzistu podnozje
za 80 pin PIC 18F8720 mikrokontrolerska kartica koja
se prodaje u Mikroelektronika-Beograd i koliko kosta
ICD2 debugger od Microchip koji radi pod MPLAB
[ djokule @ 19.11.2008. 09:23 ] @
Ljudi ne znam sta da vam kazem, ali meni ovo radi. Prvo siguran sam da je 32.768Hz jer sam ih promenio cetiri komada (jer u startu mi je bilo cudno) a uzimao sam ih u Radio klubu, drugo postavio sam vam ovde rutinu za inicijalizaciju i prescaler je na 1:4, na 1:1 daje 15sekundi. Kada ne stavim nista kao periferiju vec samo kristal povezem sa PICom(18F452) na 1:1 je spor tek na 1:4 daje sekund i malo preko, sto sam otpornikom i trimerom koje sam gore spominjao doterao do sekunde. Mozda negde gresim al ne znam gde!!??
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.