Уважаемые посетители сайта esp8266.ru!
Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram
Здравствуйте!
Нужно нужно зафиксировать время от начала некоторого события до появления положительного сигнала на ножке (10-100 микросекунд).
Скажите, пожалуйста, есть ли у ESP какие-то счетчики для таких целей? Таймеры ОС здесь явно не помогут))).
Здравствуйте!
Нужно нужно зафиксировать время от начала некоторого события до появления положительного сигнала на ножке (10-100 микросекунд).
Скажите, пожалуйста, есть ли у ESP какие-то счетчики для таких целей? Таймеры ОС здесь явно не помогут))).
uint32 phy_get_mactime(void); // в us (читает младшие 32 бита 64-х битного аппаратного счетчика)
Запоминаете и делаете разницу с новым значением.
Если надо больший период, например в сутках с дискретом в us, то:
get_mac_time() - показывает время со старта модуля в us - читает полный аппаратный счетчик с учетом перехода старшего слова во время считывания...
uint32 system_get_time(); - аналог phy_get_mactime(), но прибавляет значение uint32 WdevTimOffSet.
Найдите различие. Оно в описанном ранее - system_get_time длиннее и прибавляет китайскую константу WdevTimOffSet...
А вот get_mac_time() и ets_intr_lock() :
О, как раз собирался писать свою функцию, чтобы решить ограничения с переполнением uint32 system_get_time()
( system_get_time() и micros() переполняются каждые 72 минуты, а millies() - 49 дней)
Так что - апну тему , пригодилась.