Работа с EEPROM
- Войдите на сайт для отправки комментариев
Пнд, 16/05/2016 - 17:38
Приобрел память М24С32, научился записывать различные типы переменных, считывать их и т.п. Но тут у меня появился вопрос, какой адрис последний для записи? согласно даташиту - 4096. Написал такой скетч
while (k < 5001) { eeprom.writeByte(k, 42); delay(8); k++; } Serial.print("TEST"); while (i <5001) { byte data1 = eeprom.readByte(i); Serial.print("adress "); Serial.print(i); Serial.print("znachenie "); Serial.println(data1, DEC); i++; }
Беда в том, что даже на значениях адреса свыше 10000 контроллер все равно выдает в порт значение 42, а не 255 или ноль (я так понял он должен был выдать одно из крайних значений). Что же я сделал не так? И как определить последний адрес?
использую библиотеки
#include <Wire.h> #include <Eeprom24C32_64.h>
Ссылка на даташит не прикрепилась
Все так, работает по кругу после максималього адреса идет начало. Т.е. после адреса 4095 будет значение с 0, даже если пытаетесь указать 4096.
В качестве головоломки - придумайте как используя только операции записи и чтения определить максимальный адрес. Это возможно.
Благодарю за ответ и задачку
ОК. Код похож на ответ.