jeudi 16 février 2023

Raspberry PI PICO EEPROM

 Essai d'une EEPROM, en fait c'est une partie de la mémoire flash, qui sert de mémoire.

Voici le programme :

#include "fct_str.h"
#include <EEPROM.h>

char buffer[100];
char valeur0;
char valeur1;

void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
  EEPROM.begin(512);
}
void setup1() {
}
void loop() {
  if (Serial.available() > 0) {
    int rlen = Serial.readBytesUntil('\n', buffer, 99);
    if(strcmp_auto_detection ( buffer, "e")==0){//efface
      Serial.println("EFFACE");
      for (int i = 0; i < 512; i++) {
        EEPROM.write(i, 0);
      }
      EEPROM.commit();
    }
    if(strcmp_auto_detection ( buffer, "w0")==0){//ecrit
      Serial.println("ECRIT 11 22");

      EEPROM.write(0, 11);
      EEPROM.write(1, 22);
      EEPROM.commit();

    }
    if(strcmp_auto_detection ( buffer, "w1")==0){//ecrit
      Serial.println("ECRIT 33 44");

      EEPROM.write(0, 33);
      EEPROM.write(1, 44);
      EEPROM.commit();

    }
    if(strcmp_auto_detection ( buffer, "r")==0){//lit
      Serial.println("LIT");

      valeur0 = EEPROM.read(0);
      valeur1 = EEPROM.read(1);
      sprintf(buffer, "%d;%d", valeur0,valeur1);
      Serial.println(buffer);

    }
  }
}
void loop1() {
  delay(100);
  digitalWrite(LED_BUILTIN, HIGH);
  delay(100);
  digitalWrite(LED_BUILTIN, LOW);
}

Du coup, 4 commandes :
-"e" pour effacer la zone.
-"w0" pour écrire 11 et 22.
-"w1" pour écrire 33 et 44.
-"r" pour lire.


J'ai fait le test, cela me semble normal, j'ai une sauvegarde même si on coupe le courant.


Aucun commentaire: