• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Обработка прерываний, работает как то не так ?!?

tayanov

New member
Доброго дня. помогите разобраться. Обрабатываю прерывания.
Проблема в том что после первой обработки прерывания на последующие esp не реагирует.
Т.е. в мониторе после замыкания контактов изменения происходят единожды.
Облегченный код прилагаю.
(мне нужно посчитать количество прерываний по двум каналам.)
Код:
const int Pin = 12;
const int Pin2 = 13;
volatile int state0 = 0;
volatile int state2 = 0;



void setup() {
  delay(3000);
  Serial.begin(115200);
  pinMode(0, INPUT_PULLUP);
  pinMode(2, INPUT_PULLUP);
  attachInterrupt(Pin, coldimpulse, FALLING);
  attachInterrupt(Pin2, hotimpulse, FALLING);
  delay(50);
  Serial.println("Start");
  Serial.println();
  Serial.println("Start to work");
}

void coldimpulse() {
  Serial.println(".");
  Serial.println("Cold Interrupt");
  state0 =state0+1;
  pinMode(0, INPUT_PULLUP);
}

void hotimpulse() {
  Serial.println(".");
  Serial.println("Hot Interrupt");
  state2 =state2+1;
  pinMode(2, INPUT_PULLUP);
}






void loop() {
  Serial.print(".");
  Serial.print("cold-");
  Serial.print(state0);
  Serial.println("");
  Serial.print("hot-");
  Serial.print(state2);
  delay(400);
}



// функция положить холодный
void putcold()
{
 
  Serial.print("putcold procedure");
}



// функция положить горячий
void puthot()
{
 
  Serial.print("puthot procedure");
}
 
Сверху Снизу