Arduino Variabel Typ abfragen möglich? Boolean Variable über 1

Gast #4983418
Lesenswert?

Hallo,

Folgender Bug / folgendes Problem:

Im Kopf des Codes definiere ich eine boolean Variable; Dies sollte 
logischerweise HIGH/LOW, TRUE/FALSE, 1/0 sein. Dies funktioniert soweit 
gut, wenn ich die Variable gezielt toggle. Bei einer for-Schleife, die 
absolut nichts mit dieser Variable macht, wird die boolean Variable beim 
letzten Durchlauf der for-schleife auf 211 gesetzt. Wie kann das sein 
und wieso?! Theoretisch doch gar nicht möglich? Ich weiss, dass eine 
boolean Variable 1 Byte beansprucht, nach mir sollte die aber trotzdem 
nicht so gesetzt werden können... Anyway, hier noch der Code in dem das 
Mysteriöse geschieht:

for(i=0;i<sizeof(sequence2x)/4;i++){
          xdiffs2[i] = sequence2x[i+1] - sequence2x[i];
          ydiffs2[i] = sequence2y[i] - sequence2y[i+1];
          Serial.println(dir);
}

"dir" ist meine boolean Variable.
Die Arrays haben jeweils 11 Werte a 4 Byte (long)

Jemand schonmal solche Probleme gehabt?
Gast #4983424
Lesenswert?

> [..] beim letzten Durchlauf der for-schleife auf 211 gesetzt. Wie kann
> das sein und wieso?! Theoretisch doch gar nicht möglich?

Du schreibst höchstwahrscheinlich über das Ende von xdiffs2 oder ydiffs2 
raus.

> Die Arrays haben jeweils 11 Werte a 4 Byte (long)

Ich vermute Du beziehst Dich damit auf xdiffs2 und ydiffs2. Was genau 
ist sequence2x?
Gast #4983427
Lesenswert?

g457 schrieb:
> Du schreibst höchstwahrscheinlich über das Ende von xdiffs2 oder ydiffs2
> raus.

Ayy, da hab ich doch glatt die Grösse von xdiffs2 & ydiffs2 auf "[10]" 
gehabt, danke, fixed!

g457 schrieb:
> Was genau
> ist sequence2x?

[11]

Stefan K. schrieb:
> Wie sind definiert:
> xdiffs2, sequence2x, ydiffs2, i

float xdiffs2[11] = {};
float ydiffs2[11] = {};
unsigned long sequence2x[11] = {0,2000000,....meine Werte};
unsigned long i = 0;

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