arduino-examples
arduino-examples copied to clipboard
11.ArduinoISP/ArduinoISP.ino: with 'void pulse(int pin, int times)', it typically pulses `times` + 1, which is unexpected
The following code typically loops one more time than times
e.g. with 0, it loops once, with 1, it loops twice.
#define PTIME 30
void pulse(int pin, int times) {
do {
digitalWrite(pin, HIGH);
delay(PTIME);
digitalWrite(pin, LOW);
delay(PTIME);
} while (times--);
}
ADDITIONAL SUGGESTION#1: Decide whether it should loop 0 times or once, when times
is set to 0; looping almost forever is probably not desired.
ADDITIONAL SUGGESTION#2: Add optional additional parameter int duration
that defaults to PTIME
or 30.