I wrote #7 above away from the big rig and also in a food coma.
This is a modification to the code in the post I linked, which should be obvious if you are employing it, to @johnwasser's idea:
bool myDelay(unsigned long milliseconds)
{
unsigned long startTime = millis();
while (millis() - startTime <= milliseconds) {
if (digitalRead(buttonPin))
return true;
}
return false;
}
and as he goes on to say
Then, in place of 'delay(x)' use:
if (myDelay(x)) return;
This will give the strobe_sos() the ability to return almost immediately the button is
detected.
I note that @sionaggutraidh #8 comments about the timing. It doesn't look, at a glance, to be standard Morse code durations for dots, dashes &c.
Is SOS timed out differently to regular text besides being one symbol (no inter-character gap)?
a7