[elektro] PIC késik

mik.lajos2 mik.lajos2 at freemail.hu
Tue Jul 27 09:35:26 CEST 2010


20:59 keltezéssel, Pipi írta:
> 2010.07.26. 20:15 keltezéssel, 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-to"l a 32F-ig. Arra gondoltam, hogy ugye a prescaler ott
>>> van a timer számlálólánca elo"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ó resetelo"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 ido" 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 elo"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örlo"dik, ami hibát 
>>>>> visz
>>>>> a számításba.
>>>>>
>>>
>>
>> Nem tudom honnan veszed ezt, mert a dokuban erro"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 elo".
>> A Timer IT-k halál pontosan úgy jönnek ahogy kiszámolom és a megfelelo"
>> értéket minden IT-nél beirom a TMRx regiszterbe (nem 1:1 a prescaler).
>> A prescaler egy egyszeru" frekvenciaosztó, és semmi köze a TMRx
>> regiszterekhez.
>> A TMRx-be írás semmit sem csinál a prescalerrel. Mibo"l gondolod, 
>> hogy az
>> mindig resetelo"dik?
>> Az egyetlen kritérium, hogy a TMRx-be írás még azelött megtörténjen
>> mielött a következo" impulzus jönne amit számolnia kellene.Ellenkezo"
>> esetben elvesztesz egy számolást.
>> Alkalmazás függo", hogy ez okoz-e gondot, vagy nem számít.
> szomorú, ha ennyit programozol, és a javaslat ellenére sem nézel utána...
> idézem a 16f877 dokuból:
> When assigned to the Timer0 module, all instructions
> writing to the TMR0 register (e.g. CLRF 1, MOVWF 1,
> BSF 1,x....etc.) will clear the prescaler. When assigned
> to WDT, a CLRWDT instruction will clear the prescaler
> along with the Watchdog Timer. The prescaler is not
> readable or writable.
> a változatosség kedvéért pic18f2550/tmr1:
> Writes to TMR1H do not clear the Timer1 prescaler.
> The prescaler is only cleared on writes to TMR1L.
>
> bocs már nem emlékszem irtál-e pic tipust...
> azzal is szembeszállok hogy a timer IT-k halál pontosak, pl nem 
> mindeggy hogy egy kétciklusos (pl. goto)
>  utasitásba mikor vág bele a villám, és ez már is egy ciklus késést 
> okoz az it kiszolgálásban
> szóval fogadd meg potyó tanácsait...
>
Idézet a http://www.t-es-t.hu/elokep/pic.htm 15,2  Fejezetbo"l:

"A *Timer 0* számláló regisztere, a *TMR0* regiszter az általános 
adatmemória regiszterekhez hasonlóan tetszo"leges ido"pontban írható és 
olvasható, nullázható, kezdo"értékkel feltöltheto", pillanatnyi értéke 
tesztelheto". A *TMR0* regiszter írásakor a hozzárendelt elo"osztó 
lépteto"regisztere nullázódik és a léptetés két utasításciklusnyi ideig 
tiltva van. Ezt a késleltetést pontosabb ido"zítések esetében figyelembe 
kell venni."
Igaz ez jelenleg csak a közepes teljesítményu" PIC-ekre van megírva.
miklajos


More information about the Elektro mailing list