Как запомнить время и сравнить с текущим ?
- Войдите на сайт для отправки комментариев
Добрейшего времени. Есть модуль часов, и он нормально работает:) http://www.ebay.com/itm/261043197718?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649
Вопрос в следующем. Пишим время в EEPROM(раз в 5 минут или по какому то действию) в каждую отдельную ячейку -часы и минуты.
Считываем(раз в 5 минут или по какому то действию) -всё вроде тип топ.
Задача состоит в следующем:
Как правильно сравнить разницу(вывести) в минутах между реальным временим и которое хрониться в памяти. Не могу найти функционал.
Помогите плиз кто чем может (только по существу)
Выкладывать весь код, дело не благородное -очень много лишнего (тяжело ковыряться в чужом).Мне бы только реальный пример. Как перевести два значения 18 (часы) 30 (минуты)в 1830 и то же самое сделать с реальным временем 19 часов 39 минут в 1939 . Разница между двумя значениями как раз и нужна.
Что за изврат ?
А не проще использовать функцию millis() ?
А так,проще переводить часы-минуты-секунды сразу в одно число и запоминать во флеш ..вот только количество раз записи/чтения ограничено все же..
Что за изврат ?
А не проще использовать функцию millis() ?
А так,проще переводить часы-минуты-секунды сразу в одно число и запоминать во флеш ..вот только количество раз записи/чтения ограничено все же..
Я не спорю, но с millis() -что то не очень получается. И не совсем понял ".вот только количество раз записи/чтения ограничено все же.."
Вы наверное не совсем поняли -почему через гимор. Ардуина будет выключатся переодически. И нужно будет считать интервал прошедшего времени с последнего выключения.
Gagarin74, переведите часы в минуты и сравнивайте. 18 ч 30 мин = 18*60 + 30 мин = 1110 мин.
У EEPROM все же есть ограничение на количество записи.
Для ардуины можно использовать резервный источник питания
Если использовать часы ,то просто переводим в секунды и пишем в EEPROM ,потом разницу вычесть легче в секундах,которые,поделив на 60 можно получить уже в минутах :)
Если часы не будут использоватся по прямому назначению,то можно их просто обнулять при событии и получим уже сразу что хотим
У EEPROM все же есть ограничение на количество записи.
Для ардуины можно использовать резервный источник питания
Если использовать часы ,то просто переводим в секунды и пишем в EEPROM ,потом разницу вычесть легче в секундах,которые,поделив на 60 можно получить уже в минутах :)
Если часы не будут использоватся по прямому назначению,то можно их просто обнулять при событии и получим уже сразу что хотим
Про EEPROM -можно по подробней -сколько конкретно циклов????!!!!!!
Ардуино подключается к автомобильному прикуривателю. По этому про бесперебойник речи не идет.Машина может быть выключена на день на неделю итд итп
Gagarin74, переведите часы в минуты и сравнивайте. 18 ч 30 мин = 18*60 + 30 мин = 1110 мин.
БЛИН а вот за это 5 БАЛЛОВ!!!!!! Вот я мудильник!!!!!!!!!!
Судя по даташитам 100 000 - по идее должно хватить :)
Судя по даташитам 100 000 - по идее должно хватить :)
Не так много :( А на SD карту -долго ?
На год должно хватить,если будет включено круглосуточно и запись будет каждые 5 минут.
Кстати ,на том часовом модуле,что на ебей имеется микросхема памяти -можно и её использовать,но надо смотреть сколько у её циклов записи/чтения
Можно и на СД карту. Ведь данные пишутся со значительным интервалом времени, поэтому скорость записи не важна.
На год должно хватить,если будет включено круглосуточно и запись будет каждые 5 минут.
Кстати ,на том часовом модуле,что на ебей имеется микросхема памяти -можно и её использовать,но надо смотреть сколько у её циклов записи/чтения
СПАСИБО за помощь!!!!!!!!!!
Хы , в даташите написано 1 млн циклов :) - на 10 лет должно хватить...
http://arduino.ru/forum/programmirovanie/kak-sokhranit-znachenie-pered-sbrosom
Из даташита:
Сейчас запустил этот тест по уничтожению ячейки ради интереса, как встанет отпишусь, но уже перевалило за 200000 перезаписей.
Итак результат. Первый сбой произошел на 6321455 цикле перезаписи! Очень не плохо! Последующие после 12477, 1129, 2891, 6257. Можно считать, что ячейка сносилась.
В принципе если данные не так важны, то можно смело писать/стирать и не париться.
Еще можно организовать дублирование данных и проверку, то есть копировать каждый байт например 3 раза и записывать в 3 ячейки ЕЕПРОМ, а при чтении сравнивать эти копии и если 1 из 3 байт не равен оставшимся двум, то за верное значение принять то что в этих двух байтах. Вероятность того, что две ячейки дадут сбой одновременно и (или), при котором байты одинакого покоцаются стремится к нулю.
Тогда для задачи поставленной выше ЕЕПРОМ хватит на ~10 лет.
http://arduino.ru/forum/programmirovanie/kak-sokhranit-znachenie-pered-sbrosom
Из даташита:
Сейчас запустил этот тест по уничтожению ячейки ради интереса, как встанет отпишусь, но уже перевалило за 200000 перезаписей.
Итак результат. Первый сбой произошел на 6321455 цикле перезаписи! Очень не плохо! Последующие после 12477, 1129, 2891, 6257. Можно считать, что ячейка сносилась.
В принципе если данные не так важны, то можно смело писать/стирать и не париться.
Еще можно организовать дублирование данных и проверку, то есть копировать каждый байт например 3 раза и записывать в 3 ячейки ЕЕПРОМ, а при чтении сравнивать эти копии и если 1 из 3 байт не равен оставшимся двум, то за верное значение принять то что в этих двух байтах. Вероятность того, что две ячейки дадут сбой одновременно и (или), при котором байты одинакого покоцаются стремится к нулю.
Тогда для задачи поставленной выше ЕЕПРОМ хватит на ~10 лет.
СПАСИБО!!!!!!!!! ТО что ДОКТОР ПРОПИСАЛ!!!!!!!