Ja, das ist richtig. Im array sind das aber Texte
Sie werden beim Zusammenbau dann Variablennamen.
Um dem bit 0 auf die Spur zu kommen, debuggen wir mal und schauen, was da drin steht. (Vorausgesetzt, dass alt p61 jetzt neu p91 ist)
void packFlag()
{
if (batt.pack.flag != batt.oldpack.flag) // Wert ist geändert
{
for (byte b = 0; b < sizeof(flagText) / sizeof(flagText[0]); b++) //Frage alle vorhandenen Bit abF
{
bool myBit = bitRead(batt.pack.flag, b); // Zwischenspeicher
if (b == 0)
{
Serial.print(F("bit 0 :"));
Serial.println(myBit);
}
if (myBit != bitRead(batt.oldpack.flag, b)) // bit ist geändert
{
if (myBit) // wenn gesetzt
{
sprintf(nextionBuf, "%s%s", flagText[b], ".aph=127");
bitSet(batt.oldpack.flag, b);
}
else // wenn gelöscht
{
sprintf(nextionBuf, "%s%s", flagText[b], ".aph=0");
bitClear(batt.oldpack.flag, b);
}
sendData2Nextion(nextionBuf);
}
}
}
}
Auf dem SerMon müsste ständig eine 1 für das Bit ausgegeben werden.