1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-07-30 16:24:09 +03:00

Moving serialEvent() calls from RX interrupts to main for() loop (after loop()).

http://code.google.com/p/arduino/issues/detail?id=584
This commit is contained in:
David A. Mellis
2011-08-31 15:52:56 -04:00
parent 61b33f11ce
commit 1278144d50
4 changed files with 69 additions and 17 deletions

View File

@ -38,20 +38,23 @@ void loop() {
}
/*
SerialEvent occurs whenever a new byte comes in the
hardware serial RX. Don't do complex things here, as the
processor halts the regular program to run this routine:
SerialEvent occurs whenever a new data comes in the
hardware serial RX. This routine is run between each
time loop() runs, so using delay inside loop can delay
response. Multiple bytes of data may be available.
*/
void serialEvent() {
// get the new byte:
char inChar = (char)Serial.read();
// add it to the inputString:
inputString += inChar;
// if the incoming character is a newline, set a flag
// so the main loop can do something about it:
if (inChar == '\n') {
stringComplete = true;
}
while (Serial.available()) {
// get the new byte:
char inChar = (char)Serial.read();
// add it to the inputString:
inputString += inChar;
// if the incoming character is a newline, set a flag
// so the main loop can do something about it:
if (inChar == '\n') {
stringComplete = true;
}
}
}