如何中断一个长时间处理的功能,让它马上停止
本帖最后由 eagleflydotnet 于 2013-5-23 10:38 编辑如何中断一个长时间处理的功能,让它马上停止
比如吧
if (Serial.available()) {
while (Serial.available() > 0) {
//可以停止下面的功能。。。。。
}
}
digitalWrite(led, HIGH);
delay(8000);
有一个处理时间比较长的功能,就像上面的 delay(8000);
但我想当我有一个什么值或者其它什么的修改时,就不处理这个了,停止当前的功能,不在运行,这样的功能要怎么实现呀。 使用 attachInterrupt 即可
贴代码贴贴代码
//問題來源
//http://www.geek-workshop.com/thread-4653-1-1.html
void setup(){
Serial.begin(9600);
attachInterrupt(0,takeThat,CHANGE);
}
void loop(){
//Serial.println("Cycle begin");
delay(60000);
}
void takeThat(){
Serial.print(millis());
Serial.println("Got It!!");
}
我想知道,当调用attachInterrupt后,执行完takeThat,系统是不是还会接下来执行delay(xxx) 那些,还是就停止了,不继续执行下面的代码了。 上网查了,基本都是像 long v = (millis() - lastChangeMillis) / 10200;
这样记录一下时间,然后和当前时间做对比的。
页:
[1]