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

Странный результат измерения длительности цифрового сигнала

Отрабатывался алгоритм определения длительности сигнала (например, получаемого при измерении концентрации углекислоты в воздухе). Для проверки использовалась плата ESP32 DevKitC V4 с процессором ESP32-D0WD-V3 (revision v3.1). Выводящий и приемный пины соединялись на прямую. Квадратный сигнал создавался традиционно High delayMicros Low delayMicros в одном из ядер процессора, прием с заданной частотой осуществлялся в другом ядре процессора так: пропуск "1", пропуск "0", включение счетчика, пропуск "1", остановка счетчика. Созданы две программки, одно простые digital, вторая при прямой работе с пинами (DirectIo.h). Результаты абсолютно одинаковы. Полупериоды от 10000 мкс до 0 мкс определяются в целом верно. Наблюдаются отклонения 1-2 мкс.

Но полупериод 1000 мкс определяется неприемлемо. Получаются значения от 950 до 2002 мкс. Причина этого совершенно не понятна.
 
Сверху Снизу