#1 Програмування Arduino » EEPROM не працює » 2022-12-24 20:56:31

lukach
відповідей: 2

я використовую esp8266(esp01).
По невідомим причинам EEPROM не записується,
або записується але не читається.
допоможіть мені будь ласка.

#include <EEPROM.h>

void ICACHE_RAM_ATTR myisr();

byte val = 0;

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  pinMode(0, INPUT_PULLUP);
  digitalWrite(LED_BUILTIN, 0);
  delay(700);
  digitalWrite(LED_BUILTIN, 1);
  attachInterrupt ( digitalPinToInterrupt(0), myisr, RISING);
  EEPROM.begin(512);
}
void loop() {
  switch (val) {
    case 0:
      digitalWrite(LED_BUILTIN, 1);
      delay(90);
      digitalWrite(LED_BUILTIN, 0);
      delay(10);
      break;
    case 1:
      digitalWrite(LED_BUILTIN, 1);
      delay(80);
      digitalWrite(LED_BUILTIN, 0);
      delay(20);
      break;
    case 2:
      digitalWrite(LED_BUILTIN, 1);
      delay(70);
      digitalWrite(LED_BUILTIN, 0);
      delay(30);
      break;
    case 3:
      digitalWrite(LED_BUILTIN, 1);
      delay(60);
      digitalWrite(LED_BUILTIN, 0);
      delay(40);
      break;
    case 4:
      digitalWrite(LED_BUILTIN, 1);
      delay(50);
      digitalWrite(LED_BUILTIN, 0);
      delay(50);
      break;
    case 5:
      digitalWrite(LED_BUILTIN, 1);
      delay(40);
      digitalWrite(LED_BUILTIN, 0);
      delay(60);
      break;
    case 6:
      digitalWrite(LED_BUILTIN, 1);
      delay(30);
      digitalWrite(LED_BUILTIN, 0);
      delay(70);
      break;
    case 7:
      digitalWrite(LED_BUILTIN, 1);
      delay(20);
      digitalWrite(LED_BUILTIN, 0);
      delay(80);
      break;
    case 8:
      digitalWrite(LED_BUILTIN, 1);
      delay(10);
      digitalWrite(LED_BUILTIN, 0);
      delay(90);
      break;
  }
  val = EEPROM.read(2);
}
void myisr() {
  val++;
  if (val > 8) {
    val = 0;
  }
  EEPROM.put(2, val);
  EEPROM.commit();
}

Підвал форуму