[elektro] PIC , EEPROM-ba irás hogyan?
Moczik Gabor
pm_levlista at progzmaster.hu
Wed Jul 7 22:08:15 CEST 2010
elight wrote:
> DE Ha áramszünet jöm , akkor ki szeretném írni EEROM-ba ujra..
>
> Az áramszünetet INT rutinnal a bejövő tápfesz
>
> közvezlen mérésével oldanám meg, kb 1 mSec-onként T0 INT-el.
>
>
>
> A gondom, hogy az EEPROM iró függvényt, mivel máskor is
>
> használt, a fordító nem engedi két helyről meghívni..
>
> Gondolom valamiféle FLAG-el megoldható, hogy uton utfélen a
>
> várakozós részekből kilépjen és azonnal EEPROM-ot írjon
>
> a főhurokban..
Az nem jó, hogy csak az ISR írja az EEPROM-ot, és a főhurokban egy FLAG
állításával kéred hogy te most is ki szeretnéd írni?
Az ISR 1 ms múlva lefut majd megnézni a tápfeszt, egyúttal akkor megnézi
ezt a flag-et is, ha kell kiírja az adatot és törli a flag-et.
Ha a main-ben azt is fontos tudnod hogy kész a mentés, akkor megvárhatod
hogy törlődjön a flag.
> Az is jo lenne, ha leseséskor csak egyszer írna ki
>
> és várná, hogy ujra megnő a fesz , vagy resetre teljesen
>
> lefagy a proc..
Ebben én nem látok problémát, flag-eket kell használni, meg a
legtisztább az lenne, hogy ha már fesz.eséskor úgyis felkészülsz a
halálra, leállítgatsz perifériákat, stb., akkor itt kivinnéd a programot
egy végtelen ciklusba.
Innen a watchdog újraindíthatja ha mégis visszajött a fesz, vagy ha nem
használod, akkor betehetsz még egy PowerGood flag-et, amit kiolvasol
ebben a ciklusban, és ha visszajött, akkor simán kiadsz egy RESET utasítást.
Egyúttal bootnál is figyelheted a PG flaget, és addig vársz az init-tel,
amég meg nem jelenik (mert mondjuk bekapcs után a 24V-os tápfesz amint
eléri az 5V-ot a proci már menne, de ha itt pont megint leesne a fesz,
akkor beszédülsz a főciklusba úgy, hogy pillanatokon belül újra elmegy a
táp...)
Ezek mellett pedig írhatod szimultán az EEPROM-ot a main-ből is. Én ezt
nagyvonalúan úgy szoktam megoldani hogy, hogy megírtam az EEPROM írást
két tökegyforma példányban, ee_write(), isr_ee_write(), és akkor nem
kell reentrant függvény (meg fordító ami támogatja).
Mellesleg nem csak ezért írtam meg, nekem régen a library függvény pont
nem ment valami PIC16F procin, akkor megírtam az adatlap szerint, azóta
újabb procikon itt-ott bele kellett írni, de alapvetően kb. 10-20 asm
utasítás, úgyhogy nem szakad bele nagyon az ember... :-)
--
((( Móczik Gábor )))--((( e|mail: pm-01 |@| progzmaster |.| hu )))
((( S.k.y.p.e.: moczik )))
More information about the Elektro
mailing list