Passate ore con il comando da me preferito lo "IF". Nidificati, intersecati, frullati e tritati, ore a scovare la parentesi graffa che di sua spontanea volontà si è spostata, ore ed imprecazioni per il punto e virgola che cambia sesso e diventa un due punti e alla fine ti rilassi... ora; serve solo il solito ciclo "For" per popolare un' array. Copio da uno scratch preesistente e lo incollo, non voglio sbagliare. Stanco ma, la sponda è ormai prossima, un ultimo tocco al ciclo "for" banale banale, ovvero un conteggio alla rovescia ed ecco... Non funziona! Mi sono incavolato. Lo permutato in tutte le forme possibili tanto da scoprire nuove forme di programmazione e finalmente anche quella funzionante ma, sono a chiedervi:<< sapreste spiegarmi perchè quelle che non funzionano cosa hanno di realmente errato? Quale logica (se esiste) si nasconde dietro un ciclo "FOR"?>>. Segue il codice, alcune parti vanno decommentate per essere eseguite.
Grazie per la Vs. pazienza.
P.S.
Approfitto qui per porre un'ulteriore quesito:
C'è modo di vedere il codice sorgente preprocessato ma prima della compilazione a codice oggeto completo delle parti importate dalle librerie?
void setup() {
Serial.begin(4800);
while (!Serial) {}
/*
Segue il classico ciclo "for" incrementale(FUNZIONA!)
*/
for (byte i = 0; i <= 100; i++) { //A
Serial.print(" A=");
Serial.print(i);
}
Serial.println("A");
/*
Segue una leggera variante al classico ciclo "for" incrementale. Variato: "i++ con ++i" (FUNZIONA!)
*/
for (byte i = 0; i <= 100; ++i) { //B
Serial.print(" B=");
Serial.print(i);
}
Serial.println("B");
/*
Come sopra. Variato: "i<=100 con i==100" (NON FUNZIONA...??)
*/
//for (byte i = 0; i == 100; ++i) { //C
// Serial.print(" C=");
// Serial.print(i);
//}
Serial.println("C");
/*
Come il caso 'B'. Variato: "i<=100 con i>=100" (NON FUNZIONA...??)
*/
// for (byte i = 0; i >= 100; ++i) { //D
// Serial.print(" D=");
// Serial.print(i);
// }
Serial.println("D");
/*
Come il caso 'B' ma rovesciati i termini. Previsto un conteggio decrementale. (FUNZIONA! MA IMPAZZISCE...)
*/
// for (byte i = 100; i >= 0; --i) { //E
// Serial.print(" E=");
// Serial.print(i);
// }
Serial.println("E");
/*
Come sopra previsto un conteggio decrementale.Variato ">=i con <=i" (NON FUNZIONA...??)
*/
// for (byte i = 100; i <= 0; --i) { //F
// Serial.print(" F=");
// Serial.print(i);
// }
Serial.println("F");
/*
Come nel caso "E" previsto un conteggio decrementale.Dichiarata una variabile "int" al posto di byte (FUNZIONA!)
*/
for (int i = 100; i >= 0; --i) { //G
Serial.print(" G=");
Serial.print(i);
}
Serial.println("G");
/*
Come sopra.Dichiarata una variabile "unsigned int" al posto di int (FUNZIONA! MA IMPAZZISCE...)
*/
for (unsigned int i = 100; i >= 0; --i) { //H
Serial.print(" H=");
Serial.print(i);
}
Serial.println("H");
} void loop() {}