# Cits ... >  Frekvences dalīšana ar daļskaitli. Kāds var paskaidrot kā?

## JDat

Ir interese kā var dalīt frekvenci ar daļskaitli?
Ja es gribu no 10 MHz dabūt 77,5 KHz frekvenci, tad man jādala 10 MHz ar 129,03 utt.
http://www.qsl.net/dl4yhf/dcf77_osc/index.html
Šis onkulītis to ir dabūjis gatavu ar PIC kontrolieri, bet man kaut kā matemātika un izdoma klibo lai saprastu principu.
Te izejas kods: http://www.qsl.net/dl4yhf/dcf77_osc/ucxo1.asm

Kāds var paskaidrot kā tieši tas ir dabūts gatavs. No koda sapratu ka notiek frekvences dalīšana uz 32 un 32 (pirms tam protams vēl dala uz 4 PIC specifikas dēļ). Kur ir fiška un matemātika. Mēģināju ar excel parēķināt un man kaut kā nesanāk. Varbūt kaut ko esmu palaidis garām PIC timer niansēs?

Edit: ...frekvences dalīšana uz 32 un 32 (pirms tam ...
Pārŗakstījos. Biju domājis 32 un 33.

----------


## next

32 un 33
Paarmainjus dala ar vienu un otru, videeji iznaak kautkas pa vidu.
Frekvenchu sintezatoros diezgan biezhi taadus trikus izmantoja (bez MCU, tiiri no 74 logjikas visu taisiija).

----------


## JDat

Emm. Sanāk tā /32 ir log1 ilgums un /33 log0 ilgums? Tādā veidā duty cycle vairs nav 50:50 bet frekvence ir tā kā moms vajag. Ja šo pamēģina realizēt tā: uzliekam log1 izejā, gaidam 32 tmr overflow, tad uzliekam log0 izejā un gaidam 33 tmr overfow. Tad sākam no sākuma. Tāds ir tas princips? Kaut kā no linkā dotā koda bij grūti saprast.

----------


## next

Ta es jau to kodu neurkjeeju, pat nezinu kas tur daraas un prieksh kam to vajag.
Ieraudziiju ciparus un nospriedu ka nekas cits tur nevar buut.  :: 

Palasi literatuuru kaa darbojaas PLL - tur viss uzrakstiits.

----------


## RobinDAB

> Tāds ir tas princips?


 Tā sanāk.
Principā ļoti daudzos praktiskos gadījumos nestandarta frekvenču iegūšanai vienkāršāk ir izmantot piemēram kaut ko šādu:
http://www.cypress.com/?docID=22235
Ļoti interesanta rotaļlieta. Softs konfigurēšanai  arīdzan kaut kur tur blakām dabūjams (jāreģistrējas). Free sample - darbojas bez problēmām.

Galu galā cik sapratu tam onkulītim tas arī bija vienīgais uzdevums tam PIC...

----------


## next

> Emm. Sanāk tā /32 ir log1 ilgums un /33 log0 ilgums? Tādā veidā duty cycle vairs nav 50:50 bet frekvence ir tā kā moms vajag. Ja šo pamēģina realizēt tā: uzliekam log1 izejā, gaidam 32 tmr overflow, tad uzliekam log0 izejā un gaidam 33 tmr overfow. Tad sākam no sākuma. Tāds ir tas princips? Kaut kā no linkā dotā koda bij grūti saprast.


 Paskatiijos to kodu.
Pie katra paartraukuma tiek analizeets paartraukumu skaitiitaajs (IrqCnt) un atbilstoshi izveeleets daliishanas koeficents ko laadeet PR2 regjistraa.
Tas vajadziigs lai dabuutu vajadziigo videejo frekvenci PWM izejaa (77,5 KHz).
Aizpildiijums tam signaalam apmeeram vienaads un nemainiigs (netiek izmantots).
Nezinu ko ar to frekvenci dara taalaak, bet dzhiteris (auu, valodnieki - kaa tas latviski jaasaka?) tai ir pamatiigs.

PS. Negribas iedziljinaaties bet man liekas ka F628 ir pietiekams lai uztaisiitu no vinja visu sintezatoru bez atsevishkja faazu detektora un VCO.

----------


## JDat

Idejiski, palika bišku skaidrāk un viena lieta noteikti skaidra: Vēl daudz jāmācās lai saprastu nianses. Cypress arī izskatās interesants. Kad būs laiks papētīšu tuvāk. Paldies par info.

----------


## next

Paskatiijos to kodu veelreiz.
Paartraukums briesmiigi samudriits un man liekas tur logjiska kljuuda iraid.
Man domaat shitaa buutu pavisam pietiekami:



```
  incf	irqcnt,f
  movlw	div1	
  btfsc	irqcnt,2
  movlw	div2	
  bcf	irqcnt,2
  bsf     STATUS,RP0
  movwf   PR2       
  bcf     STATUS,RP0
  bcf     PIR1, TMR2IF 
  retfie
```

----------


## JDat

Samudrīts tur varētu būt, bet tam onkam uzdevums izpildījās. Next, lasīji, ko šamējais tur eksperimentēja un uzbūvēja? Viņa komentāri pie koda vienkārši iespārda. Būs laiks pieķeršos pie smalkākas analīzes, jo šobrīd karsti un daudz citu lietu jādara. Nav laika apsēsties un pasmadzeņot matemātiku.

----------

