-
        

Ergebnis 1 bis 2 von 2

Thema: Daten aufs EEPROM Speichern

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    17.06.2005
    Ort
    Essen (NRW)
    Alter
    29
    Beiträge
    83

    Daten aufs EEPROM Speichern

    Anzeige

    Ich brauche Hilfe:

    An dem C-Control/Basic ist am AD[7] ein Lichtsensor angeschlossen.
    Die Messung soll 1 Minute gehen
    Wie können die Messdaten aufs EEPROM so gespeichert werden, dass
    ich sie später auslesen kann.

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    08.11.2004
    Alter
    44
    Beiträge
    17

    Daten aufs EEPROM Speichern

    Hallo Speed!

    Du kannst Messwerte im Flash-Speicher speichern und später wieder lesen. Dies ist im Handbuch zur C-Control beschrieben, siehe www.c-control-support.de Den entsprechenden Teil habe ich hier angehängt.

    MfG,
    Robothomas


    Dateifunktionen
    Die Dateifunktionen erlauben das Aufzeichnen von Messwerten oder anderen Daten oder können zum Abspeichern von Information benutzt werden, die nach Ausfall der Betriebsspannung wieder in die Programm-variablen geladen werden sollen. Der Speicherbereich im FLASH Speicher nach dem Anwenderprogramm –meist der größte Teil - steht für diesen Zweck zur Verfügung. Der Speicher-Bereich wird als eine Datei verwaltet, auf die lesend oder schreibend zugegriffen werden kann, nachdem sie mit dem entsprechenden Attribut geöffnet wurde. Der Befehl zum Öffnen der Datei lautet wie folgt:
    OPEN# FOR WRITE
    OPEN# F OR APPEND
    OPEN# FOR READ
    Dabei bedeutet WRITE das Öffnen zum Schreiben mit Überschreiben eventueller alter Aufzeichnungen, APPEND das Öffnen zum Schreiben mit Anhängen der neuen an die alten Aufzeichnungen und READ das Öffnen zum Auslesen der Aufzeichnungen. Es können nur Integerwerte gespeichert und gelesen werden. Jeder Wert belegt also 2 Bytes im
    Speicher. Das Schreiben und Lesen erfolgt mit den Befehlen
    PRINT# term
    wobei das berechnete Ergebnis des Terms gespeichert wird, beziehungsweise
    INPUT# variable
    ,wobei variable eine definierte Integervariable des Programms bezeichnet. Schreiben in und Lesen aus der Datei erfolgt streng sequentiell. Dafür wird intern ein Dateizeiger verwaltet, der nach jedem
    Zugriff um 1 erhöht wird. Vor jedem Schreiben sollte geprüft werden, ob noch genügend Platz im Speicher zur Aufnahme der Daten vorhanden ist. Dafür kann die Funktion FILEFREE abgefragt werden, die als Ergebnis die Größe des noch freien Speichers liefert (in Words). Folgendes Beispiel
    zeigt die Anwendung der Funktion
    DEFINE a WORD
    DEFINE b WORD
    DEFINE c WORD
    DEFINE blocksize 3
    . . .
    IF FILEFREE >= blocksize THEN GOSUB writeblock
    . . .
    #writeblock
    PRINT# a
    PRINT# b
    PRINT# c
    RETURN
    Vor jedem Lesen sollte geprüft werden, ob noch weitere Daten aufgezeichnet sind. Die Funktion dafür lautet EOF (,,end of file”). Ihr Ergebnis ist -1, wenn in der Datei keine weiteren Daten verfügbar sind,
    27 sonst 0. Die Abfrage der EOF Funktion sollte das Auslesen von Datenblocks in gleicher Weise rahmen, wie beim Schreiben der Daten.
    IF NOT EOF THEN GOSUB readblock
    . . .
    #readblock
    INPUT# a
    INPUT# b
    INPUT# c
    RETURN
    Nach Beenden eines Dateizugriffs sollte die Datei sofort wieder geschlossen werden. Erst dann sind die Daten vor einem Spannungsausfall oder Reset des Systems sicher. Der Befehl dafür lautet
    CLOSE#
    und hat keinen Parameter.

Berechtigungen

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