Таймер на вкл. откл. с внешней EEPROM или часах реального времени

Roman2344
Offline
Зарегистрирован: 09.09.2015

Вообщем - то нужен пример скетча, в нете находил подобное но все используют внутреннюю EEPROM атмеги, а она как известно быстро протрется, либо используют часы реального времени там якобы тоже установлен EEPROM , но не понятно использует ли библиотека часов реального времени EEPROM , который установлен на плате этих часов? И часы эти настраиваются программно как я понимаю, то есть батарейка сдохнет и время заново настраивай программно? Время до включения планирую до 24 часов время до отключения устройства планируют до 4 часов(хотя бы пример для отключения остальное набросаю), задавать время планирую кнопками, плата ардуино мега. Как лучше сделать (проще и не используя внутреннею EEPROM атмеги)на часах реального времени, или с внешней микрухой EEPROM? Просто нигде не видел как сохраняют и читают из внешней EEPROM, допустим как сохранить значение во внутренюю EEPROM и дальше использовать millis это вроде везде есть.

Roman2344
Offline
Зарегистрирован: 09.09.2015
Roman2344
Offline
Зарегистрирован: 09.09.2015

За часы почитал от батарейки 10 лет про работают, а так питаются от 5в и если напряжение отсутствует переключается не батарейку. Наверно проще р лучше делать на чесах память у них есть но своя для хранения времени, даты и прочего

Roman2344
Offline
Зарегистрирован: 09.09.2015

Хотя опять же даже с часами нужно внешнее eeprom для сохранения введённого времени на отключение или включение, получается лучше всего функцию millis использовать и внешний eeprom? По крайней мере если только отключение делать через 4-5 часов работы то хватит и такого( конечно хотелось бы и откладывать включение устройства до хотя бы 12 часов как в мультиварке), где пример найти?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Тихо сам с собою.... :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Roman2344 пишет:
где пример найти?

В интернете. Их там хоть жо... в UART пихай.

Logik
Offline
Зарегистрирован: 05.08.2014

Roman2344 пишет:
Вот типа такой модуль EEPROMhttp://aukro.ua/modul-eeprom-256kb-dlya-arduino-avr-at24c256-i2c-i6115942009.html

Ну я недавно цеплял похожую, не на 32к а на 64. Чего надо-то?

Она кстати тоже "протирается".

OlegM
Offline
Зарегистрирован: 14.06.2016

эт как быстро протирается память атмеги ? )

Logik
Offline
Зарегистрирован: 05.08.2014

Write/Erase Cycles: 10,000 Flash/100,000 EEPROM

Из 

ATmega48A/PA/88A/PA/168A/PA/328/P
ATMEL 8-BIT MICROCONTROLLER WITH 4/8/16/32KBYTES
IN-SYSTEM PROGRAMMABLE FLASH
DATASHEET
 
стр.1
Даффайте без холиваров на темы "а кто проверял", "а что на 100001 цикле", "а байт или вся", "а у меня длиннее". Все было. Ищите и воздастся вам по трудам вашим.

 

OlegM
Offline
Зарегистрирован: 14.06.2016

а, ну да, 100 000 это маловато однако... вы ее разве что для циклов используете.

Logik
Offline
Зарегистрирован: 05.08.2014

Если каждую миллисекунду отнимать 1 от оставшегося до завтра времени, то и на отладку не хватит )))

OlegM
Offline
Зарегистрирован: 14.06.2016

Автар, ты чет тупишь, как ты собрался убить ЕЕПРОМ ? В ЕЕПРОМ ты будеш хранить статичные данные.. там настройки будешь хранить, вообще для суточного тайммера надо часы, а то питание пропадет и МК стартанет с дефолта при новом старте.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

OlegM пишет:

как ты собрался убить ЕЕПРОМ ?

Вы сомневаетесь в том, что есть специалисты по убиванию EEPROM за день?

"Чтобы что-нибудь сломать, нужно лишь иметь достаточно большой молоток" :)

Roman2344
Offline
Зарегистрирован: 09.09.2015

Как написано 100000 циклов записи - чтения, при этом записав в еепром по одному адресу допустим какое-то число и потом вы его считываете, то уже получается 50000раз устройство отработает, а теперь представьте есть прога в которой я один раз записывают и один раз считываю еепром(мне так нужно делаю с помощью вайл), у меня сейчас так, далее к этой пороге нужен таймер, так вот для таймера нам нужно сохранить ещё по другой ячейке памяти значение времени отключения, дальше мне нужно постоянно проверять эту ячейку памяти в цикле loop, если не равно допустим 0 число в еепром, тогда переходим на цикл который будет выполнятлся по времени, и на сколько мне тогда хватит еепром если постоянно выполнять чтение ячейки, кстати основная программа при этом не должна прерываться
?

Roman2344
Offline
Зарегистрирован: 09.09.2015

Глянул внешняя еепром AT24C128, 256, расчитаны на миллион в 4-й степени записи.

OlegM
Offline
Зарегистрирован: 14.06.2016

Roman2344 пишет:
Как написано 100000 циклов записи - чтения, при этом записав в еепром по одному адресу допустим какое-то число и потом вы его считываете, то уже получается 50000раз
эт как ?

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

OlegM пишет:

эт как ?

как-как? - протираются дырки в телевизоре от усердного смотрения.

Roman2344
Offline
Зарегистрирован: 09.09.2015

При нажатии на кнопку я выполняю цикл вайл 1 раз в котором делаю запись числа в еепром, далее выполняют ещё один цикл вайл в котором считываю эту ячейку еепром 1раз и выполняют один раз то что мне нужно, получается это уже 2 раза так как 1 раз запись, 1раз чтение. Значить если я запущу устройство 50000раз нажатием кнопки то еепром сотрется.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Roman2344 пишет:
получается это уже 2 раза так как 1 раз запись, 1раз чтение..

ок. какой ресурс твоего EEPROM на чтение?

Roman2344
Offline
Зарегистрирован: 09.09.2015

Еепром атмеги 2560 100000 циклов чтения-записи или получается один раз записан 1 раз считал это как один цикл чтения -записи? Даже если и так то для таймера если я один раз запишу и потом буду только все время считывать это тоже будет равно как один цикл записи-чтения?

OlegM
Offline
Зарегистрирован: 14.06.2016

http://chipenable.ru/index.php/programming-avr/item/174-test-eeprom-pamyati-avr-mikrokontrollera-eksperiment.html почитать

или переведи это

Write/Erase Cycles: 10,000 Flash/100,000 EEPROM

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Roman2344 пишет:
Еепром атмеги 2560 100000 циклов чтения-записи или получается один раз записан 1 раз считал это как один цикл чтения -записи? Даже если и так то для таймера если я один раз запишу и потом буду только все время считывать это тоже будет равно как один цикл записи-чтения?

нет - это я у тебя спрашиваю: сколько раз ты можешь прочитать одну ячейку EEPROM?

что ты мне заладил с циклами чтение-запись?

*кто-то, вообще, тестировал ресурс EEPROM на чтение или все бездумно упоролись циклами чтение-запись? :D

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

OlegM пишет:

Write/Erase Cycles: 10,000 Flash/100,000 EEPROM

ага! вот они трудности импортозамещения - запись/стирание у нас превращаются... превращаются в... запись/чтение чтение/запись. кароче - сначала чтение, затем износ.

после этой весёлой манипуляции, мы можем смело утверждать, что чтение у нас изнашивает ячейки и ресурс чтения ограничен.

Roman2344
Offline
Зарегистрирован: 09.09.2015

Переводится как количество циклов записи-стирания, а читать тогда можно сколько угодно?

OlegM
Offline
Зарегистрирован: 14.06.2016

УРА )))

---

а вообщето, то лучше бы понятно написал что делать собрался, а не скрытно - таймер..

Roman2344
Offline
Зарегистрирован: 09.09.2015

Завтра распишу по конкретнее

OlegM
Offline
Зарегистрирован: 14.06.2016

да мы не подгоняем )), не спеши, если че ))

Roman2344
Offline
Зарегистрирован: 09.09.2015

Есть прога с ПИ - регулятором, причём изначально выполняется один раз цикл - вайл в котором температура измеряется и в ЕЕпром записывается потом считывается температура из ЕЕПРом и в зависимости от этого вызывается один раз либо цикл - ПИ - регулятора с повышенной температурой, либо с пониженой, а дальше всё время выполняется измерение температуры и вызывается цикл ПИ-регулятора, так вот нужно прикрутить сюда таймер, причём когда во время работы вызываю на дисплее настройку таймера, цикл ПИ-регулятора как выполнялся так и должен выполняться, причём всё это время на дисплее отображается разная информация, дисплей ТФТ -4-дюйма, ардуино - мега.