Jakou zvolit strategii programu

Jan Kral kral@fortech.cz
Pátek Březen 30 07:44:11 CEST 2007


K PICu vam neporadim, ale aspon jak bych to delal ja na Atmelu:

teoreticky by mel stacit jeden casovac bezici od 0 po max (nebo obracene), na generovani PPM pulsu pouzivam preruseni pri dosazeni komparacni hodnoty, nasledne tuto hodnotu zase zmenim tak, abych generoval pulzy jake potrebuji.
Pro mereni casu se pouziva vstup Input Capture (mam dojem, ze to umi i ten PIC), kdy se hardwarove nabere stav casovace do registru presne v momentu, kdy se objevi externi signal a preruseni se muze zpracovat klidne i o dost pozdeji. Pro pripad potreby mereni delsich casovych useku nez ktere jsou na jedno naplneni citace pak pouzivam jeste preruseni od preteceni a z tech hodnot v preruseni od Input capture spocitam delku pulzu.

JK

> Zdravim, mam alespon z meho pohledu zajimavou vec nad kterou 
> zu chodim 
> cca dva dni a nemohu se rozhodnout co bude lepsi.
> 
> Potrebuji udelat zpetnovazebni regulator motoru rizeneho modelarskym 
> regulatorem - tedy celym vystupem je PPM modulace s opakovanim 20ms a 
> sirka pulzu je 1-2ms.
> Vstupem je cidlo od motoru, ktere dava 4 pulzy na otacku. Rozsah 
> regulace je 1.000-20.000rpm - tedy prodleva mezi pulzy je 
> 15ms az 749us.
> 
> Rozhodl jsem se merit ne pomoci nacitani poctu pulzu za 
> urcity cas, ale 
> merenim casove roztece mezi signaly z cidla - neni to sice 
> definitivni 
> rozhodnuti, ale ma to jiste vyhody se vzrustajicima otackama 
> (nevyhodou 
> je ruzna doba mereni) - nicmene pokud se ukaze ze merit pocet 
> pulzu za 
> cas je lepsi klidne to zmenim.
> 
> Zatim reseni, ktere jsem zatim vydumal jako perspektivni je generovat 
> prepruseni pres timer inkrementovany hodinama a tim generovat zacatek 
> pulzu PPM s tim ze v hlavni smycce budu prubezne merit cas 
> mezi pulzy z 
> cidla a cist nastavovaci prvky - vysledkem bude doba zpozdeni kterou 
> pouziju v preruseni pro genrovani delky pulzu.
> Problem vidim v tom, ze pri otackach 1000rpm je doba mereni 
> 15ms a nemam 
> zaruceno ze to v tech 20ms stihnu kdyz se to netrefi mezi dve 
> preruseni 
> a prijdu pri odskoku do generovani pulzu o presnost mereneho casu. 
> Resenim by bylo merit cas pomoci dalsiho preruseni (cidlo je 
> na RB0 coz 
> je externi preruseni). Pak by na hlavni smycku zbyvala jen obsluha 
> nastavovacich prvku. Je ale nebezpeci ze v pripade ze se sejdou dve 
> preruseni tak se to mirne zdeformuje casove - podle toho cemu 
> dam prednost.
> 
> Procesor zatim v ramci pokusu je PIC16F873A, ale neni problem pouzit 
> nejakou pinovou nahradu z 18tkove rady pokud by to bylo prinosem.
> 
> Pokud byste mel nekdo nejake osviceni jak treba lepe vyuzit HW uvnitr 
> procesoru tak budu rad.



Další informace o konferenci Hw-list