Vypocet preruseni

Martin Locker locker na vosrk.cz
Pátek Leden 25 15:07:59 CET 2013


No právě ten postup co jsem uváděl lze automatizovat. Nejlepší "přesnost" dosáhnu při nejvyšší možné frekvenci vstupního signálu do čítače (viz. níže), z toho určím nejmenší možné nastavení předděličky.
A pak už jen dopočtu potřebnou předvolbu čítače.



Dělitel = Vstupní ferkvence / Generovaná frekvence 
=> 16.000.000*0,360/64 = 90.000
Tedy pořebuji dělit 90.000, maximální předvolba čítače 65.536
=> dělička 90.000/65.536 a zaokrouhli na nejblišší vyšší mocninu 2.
Pak předvolba čítače (vypocteny delitel/dělička):
=> 90.000/2 = 45.000
TH = 45.000 / 256
TL = 45.000 % 256


Mám to takto udělané jako makro pro výpočet nastavení 16b čítače AVR pro generování signálu pro serva, vstup je jen frekvence krystalu, tady by přibyla hodnota periody, kterou chci generovat.


Martin Locker


----- Původní zpráva ----- 
> Odesilatel: RV <vicek.radek na cpost.cz> 
> Příjemce: HW-news <hw-list na list.hw.cz> 
> Datum: 25/01/2013 14:42 
> Předmět: Re: Vypocet preruseni 
> 
> No jde ale o to jak najit nejakej soucin, vsech delicu, ktere na ceste 
> lze pouzit.
> 
> 
> frekvence je 64MHz
> hodiny picu 64/4 tedy 16MHz
> volitelny preddelic 2-256 (nasobky 2)
> a 16b citac timer0, ktery je ale slozen ze dvou zretezenych 8b registru, 
> ktere mohu v preruseni prenstavit
> a potrebuju to kazdych 5.625ms jak jste spravne spocetl
> 
> zadani vyhovuje vice nastaveni - vyslo vam to polovicni - delic by mel 
> byt 90.000:
> preddelic     timerH     timerL
> 2          180     250
> 4          90     250
> 8          90     125
> 16          45     125
> 
> Spis jde o to, jak nejak automaticky vymyslet jake kombinace tri cisel 
> kde jedno jsou mocniny cisla 2 az do 256 a dalsi dve jsou 1-255 - 
> pripadne ktere z nich je neblizsim moznym nasobkem - o to my slo v tom 
> dotazu
> 
> protoze ne vzdy to vychazi takhle pekne - na PIC16 kde byl jen jeden 8b 
> registr to nevychazelo presne
> 
> 
> Radek Vicek
> 
> Dne 25.1.2013 14:12, Martin Locker napsal(a):
> >
> > Zdravím,
> >
> >
> > nevím jestli jsem dobře pochopil zadání.
> >
> >
> > Ale já k tomu přistupuju opačně. Tedy potřebuji 64 přerušení za 360 us,
> > tj. 0,360 / 64 = 5,625E-3 s.
> > Maximální rozlišení čítače je 16b, tj. 65536 maximální předvolba.
> > odtud maximální doba trvání jednoho tiku čítače:
> > 5,625e-3 / 65536 = cca 0,085...e-6
> > => maximální frekvence na vstupu čítače:
> >   1/cca 0,085...e-6 = 11 650 844 Hz
> >
> >
> > => při krystalu 16 MHz dělička 2-mi
> >
> >
> > a teď zpátky:
> > jeden tik na vstupu čítače 1 / 16e6 * 2 = 0,125e-6 s
> > potřebuji 5,625e-3
> >
> >
> > => 5,625e-3 / 0,125e-6 = 45000 ... předvolba čítače přesně
> >
> >
> > Pro 32 pulsu musí být dělička 4 a i tak to pro 64 pulsů vyjde 22500 ... přesně.
> >
> >
> > Snad jsem se v té rychlosti nikde neseknul (doufám).
> >
> >
> > Martin Locker
> >
> >
> >
> >
> >
> >
> >>
> >> Chci se zeptat jak resite nastaveni ruznych dob preruseni kombinaci
> >> hodnot timeru?
> >>
> >> Potrebuji generovat preruseni tak aby 64 nebo 32 preruseni trvalo 360ms.
> >> Puvodne jsem mel program na PIC16F a preruseni bezelo na 8b timeru0. Ted
> >> jsem se rozhodl ze asi radu PIC16F nadobro opustim (drazsi, pomalejsi,
> >> mene vybavena) a ladim program pro PIC18F, ktery pobezi rychleji a ma
> >> timer0 volitelne 8 nebo 16b.
> >>
> >> Zatim to vzdy resim tabulkou v Calcu nejakou takovou:
> >>
> >> Takt     Preddelic     Za delicem     Timer0H     Timer0L     Pocet preruseni z 1s     Preruseni
> >> kazdych us     Pocet prumerovani     Doba odectu (us)
> >> 16 000 000     64     250 000     7     201     177,683     5628     64     360 192
> >> 16 000 000     128     125 000     3     235     177,305     5640     64     360 960
> >> 16 000 000     256     62 500     2     176     177,557     5632     64     360 448
> >>
> >> a zkousim rucne odhadnout a doladit nastaveni registru timer0 tak abych
> >> se co nejvic priblizil tem 360ms.
> >>
> >> Mate nekdo nejakej lepsi postup?
> >>
> >> --
> >> Radek Vicek
> >>
> >> Tento e-mail včetně příloh může obsahovat důvěrné informace. Jestliže nejste zamýšlený adresát tohoto e-mailu, pak jakákoliv forma zveřejnění, tisk, kopírování, distribuce nebo šíření tohoto e-mailu a připojených příloh je přísně zakázáno. Pokud obdržíte tento e-mail omylem, oznamte to neprodleně jeho odesilateli a okamžitě tento e-mail včetně jeho příloh trvale vymažte ze svého systému. Odesilatel e-mailu neodpovídá za jakoukoliv škodu způsobenou modifikacemi či zpožděním přenosu e-mailu.
> >>
> >>
> >>
> >> This e-mail and any attached files may contain confidential information. If you are not the intended addressee of this e-mail, you are hereby notified that any disclosure, printing, copying, distribution or dissemination of this e-mail and any attached files is strictly prohibited. If you receive this e-mail in error, please immediately notify the sender and permanently delete this e-mail and its attachments from your system. The sender of this e-mail does not accept liability for any damage that may be caused by any modifications or delay in the transmission of it.
> >>
> >> _______________________________________________
> >> HW-list mailing list  -  sponsored by www.HW.cz
> >> Hw-list na list.hw.cz
> >> http://list.hw.cz/mailman/listinfo/hw-list
> >
> >
> >
> > _______________________________________________
> > HW-list mailing list  -  sponsored by www.HW.cz
> > Hw-list na list.hw.cz
> > http://list.hw.cz/mailman/listinfo/hw-list
> >
> Tento e-mail včetně příloh může obsahovat důvěrné informace. Jestliže nejste zamýšlený adresát tohoto e-mailu, pak jakákoliv forma zveřejnění, tisk, kopírování, distribuce nebo šíření tohoto e-mailu a připojených příloh je přísně zakázáno. Pokud obdržíte tento e-mail omylem, oznamte to neprodleně jeho odesilateli a okamžitě tento e-mail včetně jeho příloh trvale vymažte ze svého systému. Odesilatel e-mailu neodpovídá za jakoukoliv škodu způsobenou modifikacemi či zpožděním přenosu e-mailu.
> 
>  
> 
> This e-mail and any attached files may contain confidential information. If you are not the intended addressee of this e-mail, you are hereby notified that any disclosure, printing, copying, distribution or dissemination of this e-mail and any attached files is strictly prohibited. If you receive this e-mail in error, please immediately notify the sender and permanently delete this e-mail and its attachments from your system. The sender of this e-mail does not accept liability for any damage that may be caused by any modifications or delay in the transmission of it.
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list





Další informace o konferenci Hw-list