per Nello79
intendi tra l'inizio e la fine della parte dedicata alla trasmessione Morse?
non sarebbe costante, con l'oscilloscopio non lo vedresti
ad esempio come fai tu, una IF con tanti OR
con la valutazione di corto circuito avresti "periodi" velocissimi alternati a periodi più lenti
microsecondi, concordo, forse meno, ma sono sicuro che si sentirebbero....
questo è un altro che ho fatto per prova
l'algoritmo non è mio , ma di Sulimarco
unsigned long int conta;
unsigned long int t;
#define PUNTO 250
uint8_t PrevTime = 0;
uint8_t Step = 0;
void setup(void)
{
pinMode(13, OUTPUT);
Serial.begin(9600);
t = micros();
}
void loop(void)
{
if (((uint8_t)(millis() - PrevTime)) >= PUNTO)
{
PrevTime += PUNTO;
Step++;
if ((Step < 28) && (Step & 0x01) && (Step != 7) && (Step != 21) || (Step == 10) || (Step == 14) || (Step == 18))
{
digitalWrite(LED_BUILTIN, HIGH);
}
else
{
digitalWrite(LED_BUILTIN, LOW);
}
if (Step > 33)
{
Step = 0;
}
}
if (100000UL == ++conta)
{
Serial.println(micros() - t);
conta = 0;
t = micros();
}
}
compila in 2220 byte 198 byte di variabili e fa da 308132 a 308140 microsecondi per centomila giri di loop