- Labornetzteil AliExpress         
Ergebnis 1 bis 4 von 4

Thema: Verständnisfrage ERAM Variable

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    13.10.2006
    Ort
    Kohlenpott
    Alter
    37
    Beiträge
    263

    Verständnisfrage ERAM Variable

    Anzeige

    Powerstation Test
    Guten Abend!

    Ich habe folgendes Problem (schematisch umgebastelt auf das LED-Beispiel)
    Ich möchte eine LED 1min einschalten, danach soll sie erlischen.
    Die Varibale die dafür sorgt dass nach einer Min. Schluss ist wird daher vor der Hauptprogrammscheife mit einem Wert veresehen :

    Code:
    Wartezeit = 100 ' 100 = Eine Minute
    Nun soll jedoch diese Variable veränderbar sein. Wenn beim einschalten ein Taster gedrückt ist, springt das Programm in eine Subroutine und Zählt die Variable hoch. Pro Sekunden blinkt die LED einmal was bedeutet dass der Wert nun um 10 erhöt wurde. Blinkt die LED 10 mal hat man die Wartezeit also verdoppelt. Ich weise den neuen Wert der Variable "Wartezeit" zu und speicher den Wert somit im EEPROM, damit beim nächsten einschalten die LED dann zwei Minuten leuchtet. Mit dem Taster kann die Wartezeit jederzeit wieder geändert werden.

    Problem: Der Anfangswert von 100 wird der Variable jedes mal wieder zugewiesen, weil der Codeausschnitt oben bei jedem Einschalten einmal durchlaufen wird.. und daher die Wartezeit wieder auf 100 gesetzt wird, egal welchen Wert ich vorher manuel "eingegeben" habe.

    Wie funktioniert dass mit einem Anfangswert der geändert werden kann und auch geändert bleibt?

    Gruss

    Alex

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.09.2005
    Beiträge
    276
    Dim Ram_bootzaehler As Long
    Dim Eram_bootzaehler As Eram Long 'z.B. Adr 02,03,04,05


    Ram_bootzaehler = Eram_bootzaehler
    Incr Ram_bootzaehler 'oder Deine neue Zahl
    Eram_bootzaehler = Ram_bootzaehler

    mit ERam kann nicht direkt gerechnet werden,

    Gento

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    13.10.2006
    Ort
    Kohlenpott
    Alter
    37
    Beiträge
    263
    Moin,
    Trotzdem müsste ich Ram_bootzaehler doch einen Anfangswert zuweisen?

    Gruss

    Alex

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    17.09.2005
    Beiträge
    276
    Im Mega32 steht das Eram normal auf 0 ,denke ich .

    Ich Schreibe beim ersten Flashen :

    Debugen=1

    #if Debugen = 1
    Eram_bootzaehler = 0
    SerienNR1 = 193
    usw
    #endif

    So bekommt jedes Modul auch seine Seriennummer die Später nur noch gelesen wird.

    Es muß aber so ein zweites mal Geflasht werden mit Debuggen=0

    Auf der Art behält behält die CPU auch Ihre Werte nach dem Flashen per Bootloader.

    lg Gento

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test