Tápfesz lekapcsolása esetén adatmentés
Tápfesz lekapcsolása esetén adatmentés
Máshol láttam olyat, hogy a táp rá volt kötve egy lábra. A tápon volt egy soros dióda majd a kondi.
A táp kikapcsoláskor esett a fesz a lábon és erre a kikapcsolódás előtt egy-két fontos adatot elmentésre került. A dóda nem engedte, hogy más fogyasztó lemerítse a kondit és néhány ms elég volt az adattárolásra.
Atmel-nél ez lehetséges vagy pontosabban Mega16-nál?
vagy létezik valami "adatelmentés"??
Üdv
Rag
A táp kikapcsoláskor esett a fesz a lábon és erre a kikapcsolódás előtt egy-két fontos adatot elmentésre került. A dóda nem engedte, hogy más fogyasztó lemerítse a kondit és néhány ms elég volt az adattárolásra.
Atmel-nél ez lehetséges vagy pontosabban Mega16-nál?
vagy létezik valami "adatelmentés"??
Üdv
Rag
Nem. Az orajellel jatszanak es a chipben stat. RAM van.
A kijoves az alvo modbol eseten modtol fuggoen esetleg a portok inicializalasat vonhatja maga utan. Alvo modba menes elott minden port bemenet legyen! Kimeneten ha pl. LED eg, akkor nem is er semmit mert a LED tovabb vilagit:).
Felhuzoellenallasokat kikapcsolni, es egyeb finomsagokkal is lehet operalni. Alt. a proci a legkisebb tetel.
A kijoves az alvo modbol eseten modtol fuggoen esetleg a portok inicializalasat vonhatja maga utan. Alvo modba menes elott minden port bemenet legyen! Kimeneten ha pl. LED eg, akkor nem is er semmit mert a LED tovabb vilagit:).
Felhuzoellenallasokat kikapcsolni, es egyeb finomsagokkal is lehet operalni. Alt. a proci a legkisebb tetel.
Róbert!Robert- írta:Hat letezik.
HW alapon kell megoldani. Egy AD labra a tapfeszt mero ellenallasoszto, es ha leesik egy szint ala egy kapcsolotranyoval a kritikus reszkeket kilovod (LCD hatter stb, es a maradek feszbol adatmentesz.
Hát ez nem megy, egyszerűen nem akarja a cuccos...
Szerinted, ha csak a egy lábat felkötök a tápra és utána a programba nézem a láb állapotát. Olyan majdnem mintha egy nyomógomb lenne. Van táp - nincs táp.
Üdv
Rag
Ja a többi dolog már működik a relék kattognak (mind a 10), az infra-vezérlés működik, az LCD is informatív
Ez is jarhato ut, de ekkor idonkent ra kell nezni a labra, hogy milyen allapotban van. Fesz.osztoval kell megoldani.
A L szint 0,8V-t jelet! (1.5 alatt legyen)
Mert tapfesz: nem a szab. utani, hanem a stabilizator elotti tapot merd!
En a labfigyelest ekkor vagy a foprogrami ciklusba, vagy a timer rutinba rakd.
A panelen legyen nagykapacitasu kondi, es amint a lab alacsonyra valt, akkor a releket kikapcsolni, LCD hatteret kikapcsolni!
A L szint 0,8V-t jelet! (1.5 alatt legyen)
Mert tapfesz: nem a szab. utani, hanem a stabilizator elotti tapot merd!
En a labfigyelest ekkor vagy a foprogrami ciklusba, vagy a timer rutinba rakd.
A panelen legyen nagykapacitasu kondi, es amint a lab alacsonyra valt, akkor a releket kikapcsolni, LCD hatteret kikapcsolni!
Nem. Ez nem jó.
Ha nagy kondid van, akkor a relék kikapcsolni, LCD háttérvilágítás lekapcsol.
Csak utána írogass az EEPROM-ba.
Valamint ami hiba:
EEPROM 0. címét NE használd! Táplehaláskor hibás lehet (nagyon valószínű hogy megsérül). Az adatlap ír is erről!
Ahogy haszálod, én így sose használom a EEPROMot. A címet fixen adom meg. Meg itt hiányzik a Restore utasítás, ami a címet állítja be.
Ha nagy kondid van, akkor a relék kikapcsolni, LCD háttérvilágítás lekapcsol.
Csak utána írogass az EEPROM-ba.
Valamint ami hiba:
EEPROM 0. címét NE használd! Táplehaláskor hibás lehet (nagyon valószínű hogy megsérül). Az adatlap ír is erről!
Ahogy haszálod, én így sose használom a EEPROMot. A címet fixen adom meg. Meg itt hiányzik a Restore utasítás, ami a címet állítja be.
Re: Tápfesz lekapcsolása esetén adatmentés
Látom már ki is tárgyaltátok.Rag írta:Máshol láttam olyat, hogy a táp rá volt kötve egy lábra. A tápon volt egy soros dióda majd a kondi.
...
Ilyen diódás-kondis megoldások itt és itt láthatóak.
Adc méréssel is lehet természetesen, de talán kódban spórolósabb ha csak logikai L-H-t kell figyelni ...természetesen be lettek nevezve a versenyre
Pedig ezt a 'metodikát' a súgóból néztem ki.
Ja látom már a Data -val csak két értelmetlen sort írtam, mert ilyen adatot nem használok. Töröltem is. Azt hittem ezzel lehet a memóriacímet megadni.
Restore, na ezt is megnéztem, de nem teljesen értem, hogyan kell ezzel direktbe címezni.
Akkor gondolom nem a readeeprommal kell kezelnem csak síma read-del
Róbert!
Leírod nekem, hogy hogyan kell egy adatmezőt fix címmel létrehozni majd odaírni és kiolvasni az eepromból?
Üdv
Rag
Ja látom már a Data -val csak két értelmetlen sort írtam, mert ilyen adatot nem használok. Töröltem is. Azt hittem ezzel lehet a memóriacímet megadni.
Restore, na ezt is megnéztem, de nem teljesen értem, hogyan kell ezzel direktbe címezni.
Akkor gondolom nem a readeeprommal kell kezelnem csak síma read-del
Róbert!
Leírod nekem, hogy hogyan kell egy adatmezőt fix címmel létrehozni majd odaírni és kiolvasni az eepromból?
Üdv
Rag
a, legegyszerűbb:
Beírás:
Olvasas:
b. Bonyolultabb:
Samples alól az eeprom.bas file
b2, Bonyolultabban a samples alól a eeprom2.bas filebol:
Amire vigyázz: az eeprom10.000x írható!
Ha DIM as eeram-ként definiálod, az írással szorítkozz a minimumra. Pl. a prg elején ne íogassad be újra és újra...
Beírás:
Kód: Egész kijelölése
writeeprom mit, hova
Kód: Egész kijelölése
readeeprom mit, honnan
b. Bonyolultabb:
Samples alól az eeprom.bas file
Kód: Egész kijelölése
....
'You can also dimension variables that must be stored into EEPROM
Dim Eb As Eram Byte At 13 , Ei As Eram Integer At 14 , El As Eram Long At 16 , Es As Eram String * 10 At 20
'We use the AT to indicate the address because we are using both modes in this example
'Normally you dont need this
......
Kód: Egész kijelölése
....
$eeprom
'the generated EEP file is a binary file.
'specify a label
Label1:
Data 1 , 2 , 3 , 4 , 5
Label2:
Data 10 , 20 , 30 , 40 , 50
'Switch back to normal data lines in case they are used
$data
'All the code above does not generate real object code
'It only creates a file with the EEP extension
'Use the new label option
Readeeprom B , Label1
Print B 'prints 1
'Succesive reads will read the next value
'But the first time the label must be specified so the start is known
Readeeprom B
Print B 'prints 2
Readeeprom B , Label2
Print B 'prints 10
Readeeprom B
Print B 'prints 20
'And it works for writing too :
'but since the programming can interfere we add a stop here
Input "Ready?" , Yes
B = 100
Writeeeprom B , Label1
B = 101
Writeeeprom B
'read it back
Readeeprom B , Label1
Print B 'prints 1
'Succesive reads will read the next value
'But the first time the label must be specified so the start is known
Readeeprom B
Print B 'prints 2
End
Amire vigyázz: az eeprom10.000x írható!
Ha DIM as eeram-ként definiálod, az írással szorítkozz a minimumra. Pl. a prg elején ne íogassad be újra és újra...