Bug bei FOR-Schleife ?

Gast #2664252
Lesenswert?

Hallo.

Hab gerade einige Zeit mit einer FOR-Schleife gekämpft.
( Eigentlich eher mit der Wirkung, weil der Fehler einen
ganz komischen Effekt - wie immer - ganz wo anders hatte :-( )

Hab folgenden Code:

for (tmp = 0; tmp < 100; tmp++) {
  mPrgSpeed[tmp] = eeprom_read_byte(&eSpeed[tmp]);
  mPrgLeft[tmp] = eeprom_read_dword(&eLeft[tmp]);
  mPrgRight[tmp] = eeprom_read_dword(&eRight[tmp]);
}

Bei eRight[0] steht 100 im EEProm. Wird auch so eingelesen, wenn
ich debugge. (mPrgRight[0] = 100) Sobald ich aber die Schleife verlasse 
ist mPrgRight[0] = 0.

Kann mir jemand sagen was da falsch läuft ?
Vor allem die gleiche Schleife als WHILE() läuft.

Vielen Dank,
Pepe.
Gast #2664290
Lesenswert?

Hier mehr Code...

uint8_t  mPrgSpeed[99];
int32_t  mPrgLeft[99];
int32_t  mPrgRight[99];

uint8_t   eSpeed[99] EEMEM = {30, 30, ... }
int32_t   eLeft[99] EEMEM = {-100, -125, ... }
int32_t   eRight[99] EEMEM = {100, 125, ... }

void fVarSetup(void) {
  uint8_t tmp;

  for (tmp = 0; tmp < 100; tmp++) {
    mPrgSpeed[tmp] = (uint8_t) eeprom_read_byte(&eSpeed[tmp]);
    mPrgLeft[tmp] = (int32_t) eeprom_read_dword(&eLeft[tmp]);
    mPrgRight[tmp] = (int32_t) eeprom_read_dword(&eRight[tmp]);
  }

  if ((mActualPrg < 1) || (mActualPrg > 99)) !Hier kommt der Breakpoint 
!
  ...

}
Gast #2664297
Lesenswert?

@ Klaus Wachtler:
Hab zwar ne Lösung. Aber ich möchte gerade mal nicht wissen
wieviele FOR-Schleifen ich in meinem Leben schon geschrieben hab.
Macht mich ziemlich "nervös", wenn ich zu doof für ne FOR-Schleife
geworden bin...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren