2017-01-17 10 views
0

Я пытаюсь выяснить, как работает AttachedInterrupt в NodeMCU. Все, что я нашел, говорит мне, что этот код в порядке ?!AttachInterrupt на ESP8266 с прошивкой Arduino

void setup() { 
    Serial.begin(9600); 
    pinMode(D4, INPUT); 
    attachInterrupt(D4, doSth(), CHANGE); 
} 

void loop() { 
    Serial.println(digitalRead(D4)); 
    delay(100); 
} 

void doSth() { 
    Serial.println("Check!"); 
} 

Но я получаю эту ошибку:

enter image description here

Я до сих пор понятия не имею, после часов исследования!

спасибо заранее :-)

+2

Я не использовал прерывания, но мне кажется, что 'doSth()' вызывается, а не передается. Я думаю, что это должно быть 'doSth'. – leetibbett

+0

Гений! Вот и все :) Большое спасибо! – pixelstuermer

ответ

2

проблема решена - Еще раз спасибо!

Я просто использовал attachInterrupt(D4, doSth, CHANGE);

вместо attachInterrupt(D4, doSth(), CHANGE);

1

Вы не должны использовать серийную печать (ы) внутри ISR. Переместите его в Loop().