-
        

Ergebnis 1 bis 8 von 8

Thema: countdown 7 segment - denkproblem beim eeprom ...

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.02.2006
    Beiträge
    164

    countdown 7 segment - denkproblem beim eeprom ...

    Anzeige

    hallo jungs,

    ich bastle an einem einstellbaren timer mit 7segment anzeigen, soweit klappt auch alles ganz gut.

    jetzt möchte ich den wert den ich eingestellt habe auch beim ausschalten speichern, also ins eeprom.

    also bisherige funktion:
    (habe zum testen nur 2x 7segment, daher max 59 sekunden)

    - einschalten, wert von 42 sekunden wird angezeigt (im programm festgelegt)
    - über taster 1 kann der timer verstellt werden
    - über taster 2 wird der timer gestartet
    - bei 00 blinkt eine led und der timer springt wieder auf 42

    alles schön und gut.

    jetzt mein denkproblem:

    - gerät einschalten
    - wert aus dem eeprom holen
    - bei veränderung ins eeprom speichern

    aber im eeprom muss doch schon vorher irgendein wert drin stehen fürs erste mal oder ??????

    da kann doch ziemlicher müll drinstehen ?!?

    hab auch noch keinen brownout dran, der 90s8515 hat ja keinen...


    mir fällt gerade ein: vielleicht vorher ne schleife machen, wenn zahlen drinstehen - ok weitermachen, wenn nicht irgendnen wert setzen ...


    wie löst man das elegant das beim ersten mal schon ein wert im eeprom steht ?

    thx

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.02.2006
    Beiträge
    164
    so, ich habs mal ausprobiert...

    hab ne schleife am anfang des codes gesetzt

    ausm eeprom lesen
    wenn werte kleiner null oder größer neun
    dann 42 setzen

    klappt prima


    dennoch unelegant irgendwie ....

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    42
    Beiträge
    1.140
    Ich mache sowas immer über Prüfbytes.
    Wenn Du also ein gültiger Wert ins eeprom geschrieben wird, setzt Du zwei anderes Bytes im eeprom gleichzeitig auf einen bestimmten Wert, z.B. 0xABBA. Beim Start des Controllers kannst Du dieses Byte dann abfragen. Steht dort 0xABBA drin, ist ein gültiger Wert für Deinen Countdown im eeprom abgelegt, ansonsten halt nicht.

    Sicher gibt es natürlich eine gewisse Chance, dass beim ersten Start rein zufällig 0xABBA in den entsprechenden eeprom-Bytes steht, allerdings ist die Wahrscheinlichkeit mit 1:65536 recht gering. Wenn Dir das noch nicht reicht, kannst Du auch noch ein paar Prüfbytes dranhängen...

    askazo

  4. #4
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.02.2006
    Beiträge
    164
    ich habe gerade festgestellt das mein eeprom ziemlich oft beschrieben wird ... so jeden zehnten durchlauf durch die do-loop schleife ... das wirds wohl nicht lange aushalten...

    naja werde in die schaltung doch einen button einbauen der beim drücken den wert speichert ...

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Speichern mußt du dann, wenn der Wert verändert wurde und auf Start gedrückt wird. Weil dann gilt der Wert offenbar.
    Ob der Wert deshalb ein anderer ist, weil im EEprom Müll steht, kann dir egal sein.
    Eigentlich müßtest du nur ein einziges Mal "42" starten, dann steht auch das als default im Eprom.
    Sonst halt das Püfverfahren vom askazo

    (Oder du schreibst die Zahl zweimal in den EProm: das wär schon ein Zufall)
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Zitat Zitat von veit
    ich habe gerade festgestellt das mein eeprom ziemlich oft beschrieben wird ... so jeden zehnten durchlauf durch die do-loop schleife ... das wirds wohl nicht lange aushalten...
    Na dann nutz doch das gesamte EEProm also alle Adressen reihum.


    Wenn ich dich richtig verstanden habe willst du den Aktuellen Wert retten bevor der Saft weg ist.

    Also brauchst du doch nur zu Sichern wenn der Saft wirklich abgeschaltet wird.
    Das läst sich Detektieren indem man den Controller Puffert (Wlko,Goldcap) und vor dem Puffer misst wan der Saft weg ist und dann noch schnell sichert bevor der Puffer dann alle ist.

    So mach ich das schon länger und bei 100'000 Zyklen pro Zelle bedeutet das 100'000 Schaltzyklen fürs Gerät.
    Ich denke das reicht für ne ganze weile.
    Wenn dazu noch die Adresse rotiert dann kommste mit nem EEProm nen Lebenlang aus.

    Wenn es anders ist dann Vergiss was ich geschrieben hab.
    Gruß
    Ratber

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.11.2004
    Beiträge
    370

    MEGA128 CAN

    Hallo,

    hat jmd schonmal einen M128 mit canbus in nem auto ans laufen gebracht? (BASCOM) oder ist dafür ASM-Code nötig??

  8. #8
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.02.2006
    Beiträge
    164
    vielen dank für eure tipps,

    ich will halt den eingestellten wert speichern, dann das gerät komplett abschalten können ... also mir geht nicht kritisch der saft weg oder so.

    passt schon, ich benutze einfach einen taster zum wert speichern.

    thx

Berechtigungen

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