www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik EEPROM + BASCOM +


Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HAllo Leute,

wer kann mir weiterhelfen mit BAscom und ATMEGA 8 !?

Ich möchte im EEPROM Wertee hineinschreiben mit denen der
Microcontroller beim erstmaligen Start initialisiert wird.
Wenn ich nun während dem Betrieb diese Werte ändere ( hier
bei mir geschieht dies dadurch das wenn ich eine Taste drücke
der betreffende Wert um 1 erhöht wird) soll dies im EEPROM gespeichert
werden. Wenn ich nun den Controller ausschalte und wieder einschalte
sollen aber nicht die Initialisierungswerte sondern die geänderten
Werte gelesen werden

z.B. erstmaliger Start : A = 10

dann erhöhe ich Wert auf A = 12

nun schalte ich Controller aus und ein

jetzt soll A = 12 sein


Würde mich freuen wenn mir jemand weiterhelfe könnte

Ich habe es mit Dim A As eram byte probiert aber das bring nichts
weilich ja immer den allerersten Wert beim Neustart erhalte

Vielen Dank

Tobi

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
einfach die zu speichernden variablen als

Dim test As Eram Byte

deklarieren. dann bleibt der variablen-wert auch beim ausschalten
erhalten, da er ja im eeprom gespeichert ist. habs zwar noch nicht
asuprobiert, müsste aber funktionieren.

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh, hab nicht weit genug gelesen. sorry

Autor: Dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Tobi

Zeig doch mal deinen Code. Ist vielleicht nur ein Denkfehler.

MFG

Dieter

Autor: Bernd Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn "A" als Eram deklariert wird wird immer auf dem EEprom Inhalt
zugegriffen. Wird "A" verändert ist dieser Wert auch nach dem
einschalten vorhanden.

Tücke bei Bascom: Nicht alle Funktionen laufen auch mit EEprom
Variablen. Mal Funktionierts, mal nicht, manchmal auch ohne
Fehlermeldung. Steht aber auch in der Hilfedatei.

Lösung:
EEprom Variablen beim Start in normale Variablen kopieren und damit
arbeiten. Werden die Werte der normalen Variablen geändert, so muss
auch die EEprom Variable geändert werden.

Dim EETestVar as Eram Byte  ' EEprom Variable
Dim  TestVar as byte        ' normale Var

TestVar = EETestVar   ' gespeicherten Wert kopieren

do  ' irgend was sinnvolles
  if pind.0 = 0 then  ' jetzt Wert verändern und speichern
     Incr TestVar
     EETestVar = TestVar
  Endif

loop

Bernd (gehört nicht mehr zum Programm :-)

Autor: Mike (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie ist es denn mit dem überschreiben von werten durch neustart?
die ersten speicherstellen des eeprom sollen beim neustart teilweise
überschrieben werden (quelle: bascombücher von C.Kühnel)- wer kennt
sich da aus?

Autor: Bernd Schmidt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das erste Byte war wohl bei älteren AVR davon betroffen. Wie es mit den
MEGA aussieht weis ich nicht.

Ich benutze das erste Byte nicht.
Dim EEdummy as eram byte ' und das Problem is weg

Bernd

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.