Как изначально очистить eeprom ?

Использование внешней и внутренней EEPROM, а так-же SD card
Ответить
findeler
Рядовой
Сообщения: 76
Зарегистрирован: 16.07.2016{, 08:31}
Репутация: 0
Откуда: Рязань

Как изначально очистить eeprom ?

#1

Сообщение findeler » 11.08.2016{, 10:18}

Как изначально очистить eeprom ? То есть твёрдо знать, что там все нули в переменных , а не мусор.

Или в процессе создания переменной eeprom она автоматически устанавливается в 0 ?

vlad
Лейтенант
Сообщения: 396
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

Как изначально очистить eeprom ?

#2

Сообщение vlad » 11.08.2016{, 10:40}

я делал так чтобы при включении сначала проводилась проверка на допустимость значения в памяти и если оно не допустимо то прописывал туда то что мне нужно

findeler
Рядовой
Сообщения: 76
Зарегистрирован: 16.07.2016{, 08:31}
Репутация: 0
Откуда: Рязань

Как изначально очистить eeprom ?

#3

Сообщение findeler » 11.08.2016{, 10:53}

vlad писал(а): делал так чтобы при включении сначала проводилась проверка на допустимость значения в памяти и если оно не допустимо то прописывал туда то что мне нужно
не подходит. У меня смысл имеют значения и 0 и 1 и 2 и 3. но все инициализируют разные процессы. Грубо говоря если при первом запуске в ключевой переменной будет вместо 0 единица до это совсем не хорошо.

Конечно я могу изначально заливать скетч с очисткой eeprom типа.

#include <EEPROM.h>

void setup()
{

for ( int i = 0 ; i <4096 ; i++ )
EEPROM.write(i, 0);

}

Но скажу не совсем изящное решение.

Аватара пользователя
slavas
Лейтенант
Сообщения: 595
Зарегистрирован: 14.09.2015{, 22:29}
Репутация: 1
Откуда: Санкт-Петербург

Как изначально очистить eeprom ?

#4

Сообщение slavas » 11.08.2016{, 10:55}

Какая Вам разница что там было записано? если блоком записи вы сначала пишите туда данные а потом блоком чтения считываете их.

vlad
Лейтенант
Сообщения: 396
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

Как изначально очистить eeprom ?

#5

Сообщение vlad » 11.08.2016{, 11:11}

findeler писал(а):У меня смысл имеют значения и 0 и 1 и 2 и 3.
я так понимаю что вы рассматриваете ситуацию самого первого включения платы после заливки программы. Раз у вас принципиальна последовательность , может сделать кнопку по типу резет. т.е вы плату подключаете  в первый раз. нажимаете на нее и обнуляете в ноль. а дальше все работает автоматом.

findeler
Рядовой
Сообщения: 76
Зарегистрирован: 16.07.2016{, 08:31}
Репутация: 0
Откуда: Рязань

Как изначально очистить eeprom ?

#6

Сообщение findeler » 11.08.2016{, 11:26}

slavas писал(а):вы сначала пишите туда данные
тут смысл в первоначальной инициализации и записи начальных значений.

то есть есть два набора переменных в eeprom. Первый это настройки по умолчанию, второй изменяемые настройки.

Первый записывается во второй в двух слачаях:reset и первый запуск( самый первый, а не пропадание питания с ардуины). Если с ресетом всё понятно, то с первым запуском как раз проблема. Нужна изначально известная запись в eeprom.

Добавлено (11.08.2016, 11:26)
---------------------------------------------
Появилась такая идея сделать 2 переменных типа int или одну float которые никогда не могут быть изменены пользователем и проверять их соответствие. вероятность что "мусор" в этих двух переменных случайным образом совпадёт с требуемыми значениями 2^-32= ну то есть фактически нулевая.

vlad
Лейтенант
Сообщения: 396
Зарегистрирован: 11.09.2015{, 11:50}
Репутация: 0
Откуда: Казань

Как изначально очистить eeprom ?

#7

Сообщение vlad » 11.08.2016{, 11:38}

findeler писал(а):Появилась такая идея сделать 2 переменных типа int или одну float
хорошая идея.

Аватара пользователя
Vitez
Сержант
Сообщения: 211
Зарегистрирован: 08.11.2015{, 14:32}
Репутация: 4

Как изначально очистить eeprom ?

#8

Сообщение Vitez » 17.03.2017{, 16:21}

Сам не пробовал, но вроде инструмент есть.

Изображение
Последний раз редактировалось Vitez 17.03.2017{, 16:21}, всего редактировалось 1 раз.

Ответить

Вернуться в «Устройства памяти»