• Система автоматизации с открытым исходным кодом на базе 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 мкс. Причина этого совершенно не понятна.
 
Сверху Снизу