Пытаюсь заставить esp8266 среагировать на внешнее прерывание в течении не более одной микросекунды от получения сигнала, но микроконтроллер реагирует не очень шустро.
В общем, картинка получается такая:
Второй канал - входящий сигнал на GPIO, первый канал (желтый) - выходящий. В лучшем случае interrupt handler запускается с опозданием в 6-7 микросекунд, в худшем может опоздать на 20 микросекунд и больше, при выключенном WiFi.
Попробовал прошивки ардуино, esp-open-rtos и SDK espressif, результат практически одинаковый. Выходящий сигнал генерирую прямой манипуляцией GPIO регистров, запоздание там в порядке 100ns, что кажется нормально для этого процессора и bus-а, так что проблема не в запоздании выходного сигнала, а interrupt handler-а.
На esp8266.com прочитал, что можно попробовать что-то такое:
Comment about low-latency interrupts - Everything ESP8266
но я не очень разбираюсь в деталях esp8266 и пока еще не успел запустить работающий вариант.
Буду благодарен идеям, подсказкам или примерам.
В общем, картинка получается такая:
Второй канал - входящий сигнал на GPIO, первый канал (желтый) - выходящий. В лучшем случае interrupt handler запускается с опозданием в 6-7 микросекунд, в худшем может опоздать на 20 микросекунд и больше, при выключенном WiFi.
Попробовал прошивки ардуино, esp-open-rtos и SDK espressif, результат практически одинаковый. Выходящий сигнал генерирую прямой манипуляцией GPIO регистров, запоздание там в порядке 100ns, что кажется нормально для этого процессора и bus-а, так что проблема не в запоздании выходного сигнала, а interrupt handler-а.
На esp8266.com прочитал, что можно попробовать что-то такое:
Comment about low-latency interrupts - Everything ESP8266
но я не очень разбираюсь в деталях esp8266 и пока еще не успел запустить работающий вариант.
Буду благодарен идеям, подсказкам или примерам.