[elektro] PIC késik

hg12345 hg12345 at freemail.hu
Tue Jul 27 08:42:57 CEST 2010


Hi!

- Nem akarok beleszolni, de az előosztó a 8 bites rendszereknék biztos törlődik, és le is írják. Potyónak igaza van!
Ha biztosan pontos IT-t szeretnél akkor nem célszerű előosztót használni.

- Mindegy mennyit programozol PIC-t vagy bármi mást, de egy IT megérkezését sohase tudod igazán megsaccolni, így várható hogy lehetnek olyan esetek, amkor az újra írásnál már késleltetést szedsz össze!
Ráadásúl "Beleírni" egy számlálóba nagy könnyelműség föleg MEMÓRIA szervezésű uC-ek esetén. Sokkal egyszerűbb, rendszerfüggetlen (mindegy mikor esik be az IT), ezért pontosabb eredményt kapsz, ha hozzáadod az értéket :-)

movlw (0x100-átfordulási érték)
addwf  TMRx,f

természetesen ez müködik 16 és 32 bites rendszerekben is, értelemszerűen 16 és 32 bites átfordulási értékkel....


 

"hobilobi at gmail.com" <hobilobi at gmail.com> írta:
>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>
>
>
----------------------------------------->
          elektro[-flame|-etc]



More information about the Elektro mailing list