Der erste ging erst gar nicht und beim zweiten geht Beispielsweise ein Code nicht, der aber auf dem Arduino funktioniert. Habt ihr Ideen, auf was man vielleicht noch achten könnte/überprüfen sollte?
Ehrlich gesagt sind das aneinandergereihte Wörter die keinen Informationsgehalt haben.
Versuchs nochmal mit mehr Informationen.
Grüße Uwe
Hast Du Code?
Was für ein Kuhhandel ist das?
Wenn er jetz JA schreibt, kann ich wenigstens sinnvoll antworten.
//byte newArrayBuffer[] = {};
byte delArrayBuffer[10] = {0};
byte delArrayBufferIndex = 0;
byte currentArray[] = {1, 2, 3, 12};
byte newArray[] = {7, 8, 2, 4, 5, 6, 9};
int counter = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
for (byte cA : currentArray) {
bool found = false;
for (byte i = 0; i < sizeof(newArray); i++) {
if (cA == newArray[i]) {
found = true;
break;
}
}
if (!found) {
bool alreadyAdded = false;
for (byte j = 0; j < delArrayBufferIndex; j++) {
if (delArrayBuffer[j] == cA) {
alreadyAdded = true;
break;
}
}
if (!alreadyAdded) { //Serial.println(counter++);
delArrayBuffer[delArrayBufferIndex] = cA;
Serial.println(cA);
delArrayBufferIndex++;
}
}
}
}
Bin gespannt
Nu hast nicht JA gesagt.
Ok. Dann darfst jetzt mal kurz erklären, was nicht geht.
Die Ausgabe funktioniert nicht.
alreadyAdded ist für den seeeduino immer 1 und der Index delArrayBufferIndex immer 3
Was ist das?
- Leistungsstarke CPU: ARM® Cortex®-M0+ 32bit 48MHz Mikrocontroller (SAMD21G18) mit 256KB Flash, 32KB SRAM.
Egal was die MCU kann ist die ein wenig ARM gegenüber ESP32
Dachte nur, dass der schön klein sei
Das schon, ok, der kann viel, nur mit dem RAM ist man schnell am Anschlag, den gerade bei eine 32Bit MCU wegrisst man oft die Einschränkung
Naja, wegen zwei Arrays ist da aber nicht Ende...
Die muss das teil schon abarbeiten können.
@makkustm ich komm mit deiner Beschreibung nicht klar.
Ich sehe eine serielle Ausgabe für cA.
Da allreadyAdded immer true ist, kommt cA nicht zur Ausgabe.
Vielleicht geht da irgendwas mit dem byte schief.
Ich würde sowieso die Arrays const machen.
Und dann erzähl mal, was das werden soll.
Es sollen zwei Arrays verglichen werden. Entspricht das jeweilige Element des aktuellen Arrays nicht dem neuen, soll es über Serial.println(cA) ausgegeben werden.
Genau und ehrlich gesagt habe den Sketsch nur überflogen
war allgemein gedacht.
Hallo,
du bist nicht zufällig Tim der versucht unterschiedliche Arrays zu vergleichen? Link
Dann versteh ich Deinen Code aber gar nicht.
Las den mal laufen:
constexpr byte currentArray[] {1, 2, 3, 12};
constexpr byte newArray[] {7, 8, 2, 4, 12, 6, 9};
byte found;
void setup()
{
Serial.begin(115200);
Serial.println(F("Start..."));
}
void loop()
{
for (byte b = 0; b < sizeof(currentArray); b++ )
{
found = 0;
for (byte i = 0; i < sizeof(newArray); i++)
{
if (currentArray[b] == newArray[i])
{
found = currentArray[b];
Serial.print(F("FOUND newarray "));
Serial.print(i);
Serial.print(F(" @ currentarray "));
Serial.println(b);
break;
}
}
if (found)
{
Serial.print(F("Found type: "));
Serial.println(found);
}
}
}
Und dann sage mir, was Du entweder mit dem gefundenen oder den nicht gefundenen vor hast....
Die sind wie gesagt unterschiedlich lang. Wie soll man die sinnvoll vergleichen? Die sind immer unterschiedlich.
Ach - das ist das Ding von den Vectordingens....
Nein