Forum: Mikrocontroller und Digitale Elektronik Attiny2313, Bascom, Wert Speicher und Arbeiten


von voXdie (Gast)


Lesenswert?

Ich hab einen zähler Programmiert (ist hier nur ne einfache version 
davon, der richtige ist mit menu führung und verschiedenen zählern & 
löschbar)

Dim A as Integer

Do
Home
LCD A
Locate 2,1
LCD "Wert"
If Count (Pinb.0) = 1 then
Count:
If Count (Pinb.1) = 0 then
A = A+1
else
Goto Count
Endif
Loop
End

Jetzt will ich den wert der In A steht behalten selbst wenn ich das 
gerät neustarte.
Wie geht das?

Mit
Dim A as eram Byte
funktioniert das schonmal nicht


mfg Jan

von voXdie (Gast)


Lesenswert?

Keiner der mir helfen kann??????

von Karl H. (kbuchegg)


Lesenswert?

Wenn man Werte retten möchte, selbst wenn zwischendurch dem µC die 
Spannung geklaut wird, ist das EEPROM die erste Wahl.

von Paul Baumann (Gast)


Lesenswert?

Guck mal nach "WRITEEEPROM" und "READEEPROM" in der Hilfe von Bascom.
MfG Paul

von voXdie (Gast)


Lesenswert?

Danke erstmal für die tips, daraus ist das hier entstanden:


Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , 
Db7 = Portb.7 , E = Portd.2 , Rs = Portd.3

Config Lcd = 16 * 2
Cls
Cursor Off
Dim B As Integer
$eeprom
Label1:
Data 1 , 2 , 3 , 4 , 5
Label2:
Data 10 , 20 , 30 , 40 , 50
$data

Do
Home
Readeeprom B , Label1
Lcd B
Locate 2 , 1
Lcd "Wert"
If Pinb.0 = 1 Then
B = B + 1
Writeeeprom B , Label1
End If
Loop
End


Aber Warum fängt der Zähler mit dem wert -1 an? Kann man das ändern?

mfg Jan

von Rolf I. (for_ro)


Lesenswert?

Hast du denn die eeprom Daten auch schon ins EEPROM geschrieben?
Ansonsten steht noch FFFF im EEPROM, was für ein Integer -1 bedeutet.
Musst du mit deinem Programmer separat schreiben.


ERAM Variablen kannst du nicht direkt in deinem Programm benutzen. Du 
musst sie einer SRAM Variablen zuweisen, also

Dim Eram_Int as Eram Integer
Dim Sram_Int as Integer

Sram_Int = Eram_Int      'Lesen
LCD Sram_Int
Sram_Int=1000
Eram_Int = Sram_Int      'Speichern

von bix (Gast)


Lesenswert?

Bei der Verwendung des EEPROM sollte man berücksichtigen, dass die 
Lebensdauer hinsichtlich der Schreibzyklen begrenzt ist.

Man sollte keinesfalls, wie in dem Beispielprogramm gezeigt, in einer 
Schleife das EEPROM beschreiben.
1
Do
2
  ...
3
  Writeeeprom B , Label1
4
Loop

Besser wäre es, nur beim Abschalten den Zählerstand im EEPROM zu 
sichern. Wie man das realisiert, hängt vom Einsatzgebiet der Schaltung 
ab (Taster, den man beim Ausschalten betätigt oder ggf. Überwachung der 
Versorgungsspannung und beim Unterschreiten eines Schwellwertes 
speichern und abschalten)

von voxdie (Gast)


Lesenswert?

ok, kannst du mir ein beispiel für so eine überwachungsschaltung geben? 
Das ganze wird mit einem atmega8 aufgebaut

von voxdie (Gast)


Lesenswert?

kann ich sowas zum beispiel mit dem Analog eingang machen und einen 
großen Kondensator zwischen vcc und masse schalten? (das ding ist die 
Hintergrundbeleuchtung zieht so viel das so ein Kondensator sau schnell 
entladen ist, reagiert der µC bei 1Mhz schnell genug?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.