Запись моточасов

Здравствуйте. Как правильно организуется счетчик моточасов? Понимаю, что значения надо писать по кольцевому буферу. Но если каждую секунду, это жесть как по мне. Писать каждую минуту или 10 минут? Тогда сброс света не даст сохранить

Почему?

Почему?

Писать во флеш память каждые полные 10 минут или каждую минут если надо точно.

Для чего всё это пишется?
Если просто для отслеживания сколько моточасов проработал двигатель и не пора ли менять масло, то достаточно 1-2 раза в час. И даже если питание отключится за 2 секунды до записи - ни на что кардинально это не повлияет.

А если для чего-то другого, то Вы забыли написать для чего.

ЗЫ: И причем тут кольцевой буфер - лично я вообще не понял.

Запись предполагается в еепром. Ресурс ячеек поштучно маловат.
Отслеживать срок работы авд на автомойке для периодического ТО. То есть двигатель может поработать как 5 секунд, так и 5 минут одномоментно.

Определись, ты считаешь моточасы, мотоминуты или мотосекунды? Вот и писать надо каждый выбранный вариант.

3 лайка

Важное замечание) ловим мотосекунды и потом “слаживаем их всех кратно 60”

Нет. Ресурс в даташите написан гарантированный, реальный в несколько тысяч лет больше.

Конденсатор по больше (тысяч на 10мкФ) с диодом по питанию поставить и записывать данные в EEPROM только тогда, когда питание отключили (ну и для верности - раз в 5-10 минут). Мониторить свободным портом «за диодом».

ЗЫ: И хотя бы простенький RTC нужно иметь, потому что только на миллис (да еще с китайским «кварцем») точность будет +/- несколько лет :smiley:

ЗЫ2: Нет такой необходимости «кратно 60» и тп, просто используй формат Unix time.

Просто обрабатывать “сброс света” и в этот момент успевать всё записать.

Я ему об этом выше и написал. И даже описал как именно.

Дикая емкость - медвежья услуга(несмотря на бодлевел). Небольшой конденсатор по питанию развязанный от основной схемы диодом и отслеживание пропадания питания. А так. Писать раз в час и не париться (енто моточасы жеж :slightly_smiling_face:)

Ну да, 10 000 мкФ - это я, конечно же, «загнул». :smiley:

Однако же «небольшая» тоже не вариант…
Я в одной схеме подобное реализовывал, стабильное сохранение 7 переменных (по 2-4 байта каждая) без ошибок получилось при 1500 мкФ, но я перестраховался и поставил на 2700мкФ (несколько конденсаторов разной емкости, что было «под рукой»).

Можно псставить копеечную микросхему ФРАМ и писать в нее хоть каждую секунду без всяких ухищрений

1 лайк

Разве так критично, отработал агрегат 1558 часов или 1557.5 часов?
Правильно говорят, можно и при отключении записывать. В часах RTC есть свободные ячейки даже(хотя могу ошибаться).
К тому же eeprom имеет ресурс 100 000 записей минимум. Это 27 часов посекундно. Помножте на кол-во ячеек. 512×27 часов=590 суток работы.

А есть уверенность что длина строки flash составляет одну ячейку?

@andriano , если речь о формате времени, то можно записывать относительное время, а не абсолютное.
Если писать каждый час, то 1 байт=255 часов.
Или в другом вопрос?

Кислое с твёрдым. Один о ячейках EEPROM, второй про flash …

Думаю мы одно и тоже имели ввиду, энергонезависимая eeprom для данных, а не флеш программы)

Тогда я чего-то не понял, получается…