Странное поведение порта

progman
Offline
Зарегистрирован: 26.01.2019

чип ESP32S

использую для приема цифровых сигналов от датчиков 5 GPIO портов.

непредсказуемое поведение только с одним GPIO16

вот код инициализации:

pinMode( 16, INPUT_PULLUP );
attachInterrupt( digitalPinToInterrupt( 16 ), counter16, RISING );

выражается в следующем: То прервание вызывается если на вход 16 подать +3.3V, то после перезагрузки/перепрошивки бац и уже реагирует только если закоротить пин на землю GND.

По документации он отвечает за UART2 нога R2 но я отключил второй Serial и отключил для надежности какую либо отладку. Тоесть UART ну никак не может использовать GPIO и менять его поведение.

ЗЫ подтягивающий резистор 5,1кОм имеется

 

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018
INPUT_PULLUP

это подразумевает использование встроенного резистора с подтяжкой к плюсу питания.

Цитата:
RISING прерывание вызывается только при смене значения на порту с LOW на HIGH

Я так понимаю, надо резистором притянуть к земле пин и сменить тип входа на просто INPUT. Тогда при подаче плюса питания на пин будет срабатывать прерывание.

progman
Offline
Зарегистрирован: 26.01.2019

все GPIO притянуты 5,1кОм резистором к +3,3V к земле идет 100пФ rjyltycfnjh

поэтом INPUT_PULLUP и INPUT - поведение не меняется. Я оба варианта пробовал

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

Вы читать умеете?

Цитата:
RISING ... при смене значения на порту с LOW на HIGH

А вы его в плюсу питания притягиваете зачем-то...

Или событие смените на - FALLING (оно как раз с HIGH на LOW срабатывает).

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

progman пишет:

все GPIO притянуты 5,1кОм резистором к +3,3V к земле идет 100пФ rjyltycfnjh

поэтом INPUT_PULLUP и INPUT - поведение не меняется. Я оба варианта пробовал

 

А что у вас там к пину подключено? Как вы его состояние меняете?