• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Работа с аппаратным таймером.

pvvx

Активный участник сообщества
Да, существует вероятность что есп перезагрузится или включится скажем к примеру в 15 минут 59.999 секунд и да мы получим по факту не верную вычитку. Но такая вероятность будет равна примерно 0.0001% т.е. на практике это фактически не возможно.
Вероятность подсчитана ранее для случая непрерывного чтения с RTC.
А в вашем коде она будет другая. Т.е. на несколько порядков больше указанного ранее, а не как у ваших выдумок в 0.0001%.
Если не дружите даже с элементарной с математикой процентов, то и не пытайтесь ввести в заблуждение других.
Походу от этого и ваши раздражения.
 

pvvx

Активный участник сообщества
В формуле вычисления периода таймера достаточно одного сбоя, чтобы таймер сбил всю синхронизацию, творя далее множественные глюки.
Ржу с вас ребятки. Вы два клоуна устроили тут такой сралик в попытках доказать на сколько вы супер знатоки. Один утверждает что еще в начале "подсказал", хотя я попросил уточнить и уточнить не смог. Другой "мотивировал" своими советами в формате насмешек.
И вам по началу коротко и изложили ошибки, но вы были не в состоянии это осознать, без терапии. И только после применения терапии, до вас начало доходить и тут-же все стали виноватыми в вашей тупости. Кому ржать?
Напишите ещё, что не так объяснили, не в привычной форме, к которой в итоге перешли ваши ответы. :)
 

pvvx

Активный участник сообщества
Другой "мотивировал" своими советами в формате насмешек.
И какие тут насмешки?

Типа эти (?):

Ардуино – это детская игрушка. И библиотеки к ней пишут дети. Но высоковозрастное дитё, упало до уровня поиграть в песочнице. Уровень был определен лично высоковозрастным дитяткой, но оказался ещё ниже. Ладно ещё не знает сленга в песочнице с куличиками, но творить ошибки в алгоритме и обращаться за помощью к мамке... :)
А тут попался папка, и дитятко резко поменяло пол.
 

pvvx

Активный участник сообщества
Песочек надо насыпать в формочку полностью, а потом прикладывать. А не подсыпать частями.
Так понятнее?
 

pvvx

Активный участник сообщества
Как моя бывшая... Все заработала сама.
Безотцовщина уже настолько стала влиять, что великовозрастные дитяти имеют психологию бабы.
ТС уже запрашивает мотивацию... Вы должны были его мотивировать на исправление кода.
 

Goga075

New member
не смогли ответить.
И после этого я все починил сам.
Для начала научитесь объяснять свои мысли и идеи для менее опытных участников.

А в вашем коде она будет другая. Т.е. на несколько порядков больше указанного ранее
Вы оперируете неверными данными. Вы даже не знаете будет-ли есп выключаться или перезагружаться. И представляете на столько серьезные расчеты.

В формуле вычисления периода таймера достаточно одного сбоя, чтобы таймер сбил всю синхронизацию, творя далее множественные глюки.
Даже если я переделаю формулу так как вы предлагали ранее, от сбоя меня это не спасет. Вы противоречите самому себе. Можно было просто сказать что формула Г со всех сторон.

ТС уже запрашивает мотивацию... Вы должны были его мотивировать на исправление кода.
Может хватит восхвалять себя. Мы уже выяснили, что вы царь и бог этого форума. Правда ваши мотивации тянут меня тока по срать.
 

CodeNameHawk

Moderator
Команда форума
Для начала научитесь объяснять свои мысли и идеи для менее опытных участников.
Будьте попроще и люди к вам потянутся.
Это не школа, учить вас тут не будут.
Делаете, то что вам предлагают сделать (даже если не понимаете для чего это), получаете результат, а на нет и суда нет.
 

pvvx

Активный участник сообщества
Даже если я переделаю формулу так как вы предлагали ранее, от сбоя меня это не спасет. Вы противоречите самому себе. Можно было просто сказать что формула Г со всех сторон.
При чем тут формула?
Метод лечения давно выдан - изменить код либы - переписать чтение регистров блоком за раз по документации на чип.
 

quireljohn6

New member
Просто, будет тогда так:
esp_timer_start_once(timer1, 36000000000ul);

Но нет, ты не верно понял суть вопроса и кода.
Мне нужно сделать логирование в 0 минут и 0 секунд каждого часа. По этому и RTC
Да, конечно можно в сеттапе оставить RTC а в цикле timer1_callback пихнуть esp_timer_start_once(timer1, 36000000000ul);
Но в таком случае мы будим иметь задержку при каждом выполнении цикла timer1_callback равной времени выполнения кода. Ну и через пару месяцев беспрерывной работы мы получим хороший сдвиг.
Еще можно воспользоваться костылем if (myRTC.getSecond() && myRTC.getMinute() == 0). Но не считаю это оптимальным решением.
По этому хочу докопаться до истины и может у форумчан есть свежие идеи т.к. я уже 2 недели ломаю голову.

Тем временем, если хочется отвлечься от сложных технических задач и просто расслабиться, отличный выбор для этого — онлайн-казино 1вин. Здесь можно найти массу увлекательных игр, а еще шанс испытать удачу и выиграть отличные призы. Увлекательные слоты, бонусы и простота в использовании — идеальное место для того, чтобы сделать перерыв!
Если основной задачей является логирование именно на нулевой секунде каждого часа, то использование RTC, конечно, оправдано. С учетом твоего пояснения, что в случае использования esp_timer_start_once будет накопливаться ошибка из-за выполнения кода, мне кажется, правильным решением будет не полагаться только на чисто программные таймеры, а попробовать комбинированный подход.


Один из вариантов — это использовать RTC для синхронизации с реальным временем (например, каждый час получать текущее время и проверять, не 0 ли оно). В момент, когда наступает 0 секунд (в начале часа), выполняешь нужное логирование. А после этого уже настраиваешь новый таймер, чтобы он запускался через 3600 секунд, но с учетом задержки.
 
Сверху Снизу