Hallo,

ich möchte nach dem erfolgreichen Setup eines Drehzahlstellers diese Tatsache im EEPROM speichern, so dass nach dem nächsten Einschalten die Setup-Routine nicht noch einmal durchlaufen wird.
Dazu habe ich folgendes difiniert:
Code:
dim PulseSet as eram byte                    'used to store different states in EEPROM
                                             '  bit0 - 0 = no values in EEPROM
                                             '         1 = found values in EEPROM
                                             '  bit1 - 0 = max. speed forward
                                             '         1 = max. speed backward (inverted)
Später im Programm gibt es dann die entsprechende Initialisierung:
Code:
PulseSet = 0
Wenn die Setup-Rotuine erfolgreich durchlaufen wurde, kommt folgendes:
Code:
   PulseSet.0 = 1                            'correct values stored in EEPROM
Soweit ist die Welt in Ordnung. Zu Beginn des Hauptprogrammes kommt dann die entscheidende Frage:
Code:
if PulseMiddle < PulseMin or PulseMiddle > PulseMax or PulseMax < PulseMin or PulseSet.0 = 0 then
   call Warning
   goto Setup
endif
Falls hier die Impulslängen unsinnig sind oder eben keine Werte im EEPROM gefunden werden, soll die Setup-Routine erneut durchlaufen werden.

Und hier liegt mein Problem: Bei der angegebenen Definition startet das Programm immer mit der Setup-Routine. Der Knackpunkt liegt beim letzten Teil der if-Frage (or PulseSet.0=0); wenn ich diesen Teil lösche, klappt es. Definiere ich aber die Variable PulseSet wie gehabt und weise nur andere Werte im Verlauf des Programms zu, z.B.:
Code:
dim PulseSet as eram byte                    'used to store different states in EEPROM
                                             '   0 = no data available
                                             '   1 = setup succesfully done
                                             '   2 = max. speed forward
                                             '   3 = max. speed backward (inverted)
funktioniert es auch. Alternativ habe ich andere Variablennamen versucht - ohne Erfolg. Wenn ich nicht nach den Bits 0 und 1 von PulseSet frage, sondern nach den Bits 1 und 2 geht es auch.

An dieser Stelle hoffe ich, jemand kann weiterhelfen:
1. Kann ich auf die Bits einer EEPROM-Variablen zugreifen?
2. Gibt es das Bit 0 bei EEPROM-Variablen?
3. Oder was sonst könnte die Ursache sein?

Beste Grüße
Jürgen