Использование Arduino IDE с Wemos D1 mini и установка прерывания следующим образом:
const int stop1Pin = 14;
void ICACHE_RAM_ATTR stopMotor();
void setup() {
pinMode(stop1Pin, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(stop1Pin), stopMotor, RISING);
}
void stopMotor() {
//DO SOMETHING
}
On stop1Pin
У меня нормально закрытая кнопка подключена к GND. Запуск программы в первый раз stopMotor
не вызывается должным образом, поскольку stop1Pin
заземлен. Затем я нажимаю sh кнопку, разрывающую соединение с GND, и, поскольку stop1Pin
внутренне подтягивается, запускается условие RAISING и выполняется stopMotor
. НО, как только я отпущу кнопку, возвращаясь к GND (ПАДЕНИЕ), снова вызывается stopMotor
.
Я не думаю, что у меня проблема с оборудованием, так как я пробовал Убедившись, что уровни напряжения правильные, я пробовал с обычными аппаратными подтягиваниями, а не с мягкими подтягиваниями из примера и события, отключающего кнопку в аппаратном и программном обеспечении, те же результаты. Он ведет себя так, как будто условие - ИЗМЕНЕНИЕ, а не ПОДНЯТИЕ. Кстати, использование FALLING имеет тот же эффект.