[ MILANAN @ 25.08.2013. 10:43 ] @
Male nejasnoce imam samo oko proracuna pa ako moze pomoc? Postavio sam i kod sa formulama koje su mi malo nejasne.


T2CON = %00000101 ' Preskales=4

PR2=(Fosc/(4*PS*Freq))-1
' 4MHz clock, preskaler=4. (4E6/(4*4*1E3))-1=249
---4e6 je 4 000 000 hz
---prvi br 4 u zagradi - da li je 4 zbog 4mhz ktistala ???????????
---drugi br 4 je preskaler
---1e3 je 1000khz

-------------------------------------------------------------------------------------------

formula za CCPR1L:CCP1CON<5:4>
' period 20% to 80%. (249+1)*4*0.2=200 (20%)
' (249+1)*4*0.8=800 (80%)

Da li moze ovako ova formula za duty ??? i da li je br 4 preskaler ???

--------------------------------------------------------------------------------------------
Za ovde u knjizi pise da treba upisati 2 najniza bita u CCP1CON pa ako moze bar ukratko objasnjenje u vezi ovog dela koda ???
CCP1CON.4 = duty.0
CCP1CON.5 = duty.1
CCPR1L = DUTY >> 2









[ foxhunter1 @ 27.08.2013. 21:55 ] @
Ne, prvi broj u zagradi (4) nije zbog kristala od 4 MHz, vec zato sto je frekvencija kojom se izvrsavaju instrukcije (interni klok)
4 puta manja od freq kristala ili kloka koji bi bio doveden spolja.

CCP1CON.4 = duty.0
CCP1CON.5 = duty.1
CCPR1L = DUTY >> 2

Kako je PWM duty cycle maximalno 10 bitni, a registri u PICu su 8 bitni - imamo visak od dva bita, koje treba smestiti u neki
drugi registar. Zadnja dva bita (LSB) smestaju se u CCP1CON bitove 4 i 5 - bas kao sto si gore i napisao (prepisao).

Preostalih osam bitova (od 10 vec si zadnja 2 upisao u CCP1CON), upisujes u CCPR1L. Kako od 10 napraviti 8??? Tako sto ces
10 bitnu varijablu siftovati u desno za dva mesta i to je to!

Za proracun frekvencije i djuti sajkla kod PWMa pokusacu kasnije da okacim jedan odlican program(cic), koji nije samo za
racunanje PWMa, vec i za tajmere, USARTe itd.
[ MILANAN @ 28.08.2013. 15:59 ] @
Evo jedan primer malo sam izmenio da se duty poresava tasterima u radu i u simulatoru radi a u stvarnosti nism probao ali valjda hoce