Я дергал пин из основного цикла. Я использовал Ардуино для ESP8266, а не SDK. Обработчики прерывания уже готовы, у меня доступа к ним нет. Единственное что есть, это attachInterrupt/detachInterrupt на пин.olehs писал(а): Неужели приоритет выше, чем у аппаратных прерываний? Вы ногой дергали из основного цикла или из прерывания таймера?
Cудя по тому, что ESP8266 часто теряет хвосты длинных сообщений, приходяших по UART (у меня регулярно обрезал примерно на уровне 80-го байта), а обрабатывается UART по прерываниям, то прерывания выключаются во время обработки. И это при том, что аппаратный буфер на прием 128 байт, а к нему, если верить описанию, довешен программный буфер 256 байт в обработчике прерываний UART. Чтобы побороть беду, мне пришлось останавливать внешний передатчик UART через CTS/RTS на время вызова любых функций TCP/IP обмена в ESP.
Время millis вроде бы считается без пропусков, так что, наверное, не все прерывания глушатся.