-
        

Ergebnis 1 bis 2 von 2

Thema: EOF Befehl

  1. #1

    EOF Befehl

    Anzeige

    Hallo,

    ich will den restlichen Speicher meiner M-Unit 2.0 zum Speichern von Daten (Temperaturmesswerte) verwenden. Das Programm soll in bestimmten Zeitintervallen Daten in den Speicher schreiben. Die Anzahl der Daten ist dabei nicht fest.
    Zu einem späteren Zeitpunkt soll durch drücken einer Taste der Speicher ausgelesen werden und mit Hilfe eines Hyperlink-Programms in den PC übertragen werden.
    So weit so gut.

    Das Speichern funktioniert ja auch schon sehr schön.
    Wo es Probleme gibt ist das Auslesen. Meine Idee war es mit dem EOF Befehl das Ende des Daten-Files abzufragen um nur die Daten auszulesen die ich auch gespeichert habe.

    Das Auslesen der Daten erfolgt in einer Schleife mit der Befehlskombination:
    Do
    ....
    ...
    Loop Until EOF = 0

    Ergebnis: Es werden nicht nur die Daten aus dem Speicher ausgelesen die beim letzten einlesen der Daten gespeichert wurden, sondern der gesamte Speicher der M-Unit wird ausgelesen. Also auch Daten die bereits uralt sind.

    Noch eine Kleinigkeit:
    Vor dem Speichern der Daten kontrolliere ich den freien Speicher mit dem Befehl: FILEFREE
    Ergebnis: 4505, was bedeuted, dass der gesamte Speicher frei ist.
    Nach dem der Speichervorgang beendet wurde (Drücken einer Taste)
    kontrolliere ich nochmals den freien Speicher, mit dem Ergebnis, dass der freie Speicher genau um die gespeicherten Daten reduziert ist.

    Hat da jemand eine Idee, wie ich nur die Daten aus dem Speicher auslesen kann, die ich beim letzten einlesen gespeichert habe.

    Mit freundlichen Grüßen und vielen Dank im Voraus

    Alex

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2006
    Ort
    Dresden
    Alter
    62
    Beiträge
    370
    Hallo,
    m.E. gibt EOF -1 (ON) zurück, wenn das Fileende erreicht ist-
    Also: IF EOF THEN GOTO ...
    Der befehl ist nur verfügbar/sinnvoll wenn das File geöffnet ist -OPEN# for Read- das EEProm-Objekt: EEPROM.READ wert1, wert2, usw schliesst die Datei sofort wieder!
    Also: vor der ausleseschleife open# for read, in der schleife input# wert (define as word) dann wert ausgeben(ACHTUNG: Print ist umgeleitet!), nach der schleife close# müsste gehen - EOF ( End_Of_File)=ON beachten, bei dir müsste: LOOP UNTIL EOF reichen.
    MfG Lutz

    puh, ich merke gerade, die werte über die serielle auszugeben funzt so nicht...
    da muss ich erst mal drüber schlafen
    Wir haben so viel mit so wenig solange versucht, das wir jetzt qualifiziert sind, fast alles mit fast nichts zu bewerkstelligen.

Berechtigungen

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