"residuati bellici"

:fearful:

Dai un'occhiata qui:

E qui:

#include <EEPROM.h>


const int BUFSIZE = 10;
char buffer[BUFSIZE];
int bufIndex = 0;

const char* PASSWORD = "12345";


void fillEeprom(int startAddr, int endAddr, byte value) {
    if (startAddr < 0) {
        return;
    }

    if (endAddr < 0) {
        return;
    }

    if (startAddr > endAddr) {
        return;
    }

    for (int i = startAddr; i <= endAddr; i++) {
        EEPROM.write(i, value);
    }
}


void clearEeprom() {
    fillEeprom(0, 1023, 0xFF);    // ci dovrebbe essere una costante predefinita che indica la fine della EEPROM...
}


void processBuffer(const char* buf) {
    if (strcmp(buf, PASSWORD) == 0) {
        clearEeprom();
        Serial.println("Eeprom cancellata.");
    }
    else {
        Serial.println("Password errata.");
    }
}


void setup() {
    Serial.begin(9600);
}


void loop() {
    char ch;

    while(Serial.available() > 0) {
        ch = Serial.read();

        switch(ch) {
        case 0x0A:
        case 0x0D:
            if (bufIndex > 0) {
                buffer[bufIndex] = 0;
                processBuffer(buffer);
                bufIndex = 0;
            }
            break;

        default:
            if (bufIndex < (BUFSIZE - 1)) {
                buffer[bufIndex];
                bufIndex++;
            }
            else {
                // carattere perso per mancanza di spazio nel buffer
            }
        }
    }
}

L'ho soltanto compilato, ma non provato su una scheda reale. Se ho scritto qualche castroneria, vi prego di segnalarlo, grazie!

:slight_smile: