[elektro] PIC késik
hobilobi at gmail.com
hobilobi at gmail.com
Mon Jul 26 20:15:42 CEST 2010
2010.07.25. 22:03 keltezéssel, potyo írta:
> Lehet, hogy nem világos, hogy mire gondoltam, mert ez mindegyiknél
> megvan a 10F-től a 32F-ig. Arra gondoltam, hogy ugye a prescaler ott
> van a timer számlálólánca előtt, és ugyanúgy számol, mintha az is a
> timer része lenne, ha nem 1:1-re van állítva a prescaler. Viszont ha
> írsz a TMRx regiszterbe, de a prescaler nem 1:1 arányra van állítva,
> akkor a prescalert alkotó számláló resetelődik. Ha ezt nem veszed
> figyelembe és minden megszakításnál adott értéket adsz hozzá a TMRx
> regiszterhez, akkor a valós túlcsordulás pillanata és az írás
> pillanata közötti eltelt idő alapján a prescalert alkotó számlálólánc
> vagy nulla vagy nem nulla állapotban van. Ha nulla állapotban van,
> akkor nem visz hibát a számításba, ha nincs nulla állapotban, akkor
> meg visz. Ezt pedig előre nem tudod, hogy milyen állapotban lesz, mert
> ugye vannak utasítások, amik nem egy ciklus alatt futnak le,
> nembeszélve az aszinkron megszakításokról (soros port, INTx láb,
> stb.), amit az egészet szintén el tudják tolni. llyenkor vagy meg kell
> várni, hogy még egyet billenjen a TMRx regiszter és az után írni
> közvetlenül, vagy pedig 1:1 prescalert kell használni.
>
> hobilobi at gmail.com<hobilobi at gmail.com> írta (2010. július 25. 21:46):
>
>> 2010.07.20. 10:13 keltezéssel, potyo írta:
>>
>>> Nem ismerem a konkrét tipust, de kisebb piceknél ha a Timer tartalmát
>>> módosítja az ember, akkor a prescaler értéke törlődik, ami hibát visz
>>> a számításba.
>>>
>
Nem tudom honnan veszed ezt, mert a dokuban erről eddig még egy kukkot
se láttam.
Ez ugyan még nem jelentene semmit, mert a dokuk nem 100%-osak.
A blokkvázlatok azért elég korrektek, és azon sincs jelölve semmiféle
egymásra hatás.
Viszont napi 8 órában PIC-et programozok, és ilyen probléma sosem
fordult elő.
A Timer IT-k halál pontosan úgy jönnek ahogy kiszámolom és a megfelelő
értéket minden IT-nél beirom a TMRx regiszterbe (nem 1:1 a prescaler).
A prescaler egy egyszerű frekvenciaosztó, és semmi köze a TMRx
regiszterekhez.
A TMRx-be írás semmit sem csinál a prescalerrel. Miből gondolod, hogy az
mindig resetelődik?
Az egyetlen kritérium, hogy a TMRx-be írás még azelött megtörténjen
mielött a következő impulzus jönne amit számolnia kellene.Ellenkező
esetben elvesztesz egy számolást.
Alkalmazás függő, hogy ez okoz-e gondot, vagy nem számít.
István
More information about the Elektro
mailing list