[elektro] PIC késik
potyo
potyo.ada at gmail.com
Mon Jul 26 20:38:43 CEST 2010
Akkor nézz szét a doksikban, mert bizony írja bennük, hogy törlődik a
prescaler állása, amikor a TMRx-be írsz.
12F629 doksi 5.3 első bekezdés utolsó mondata
16F887 doski 6.3 utolsó bekezdés
18F4550 doksi 11.3 harmadik bekezdés
PIC32 reference manual (DS61105E) 14.3.10 utolsó bekezdés.
Ha nem haragszol, akkor most nem keresem elő a netről a 24F sorozat
timerekről szóló reference manual részét, amiben ugyanígy benne van
ez. Azért szomorú, hogy napi nyolc órában ezzel foglalkozol, és egy
ilyen alapvető pontosságot befolyásoló dologról nem tudsz, de még csak
utána sem nézel, ha már valaki említi...
hobilobi at gmail.com <hobilobi at gmail.com> írta (2010. július 26. 20:15):
> 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