[RISOLTO] dichiarare variabili al momento che servono oppure no

Silente:
Qualche consiglio:
incorpora fino alla morte le boolean in variabili di tipo byte (non so per che cosa le usi ma ne ho contate una quindicina soltanto tra le dichiarate globali)
Contrario, solo in apparenza, a quanto dissi: sei certo che tutta quella pappardella di variabili globali ti siano utili? Quelle che ti servono solo per momenti rendile locali, che poi spariscono.
Ho visto una cosa che non mi piace:un, ma forse sono di più, esemplare di String. Estinguili.
Rendi #define TUTTE le variabili il cui valore NON debba cambiare nel programma. Altro che "const unsigned long", e pin di pulsanti manco dichiarati const.
Sicuro che ti serva leggere lobstato di pulsanti e ricordarlo in variabile? Se tale variabile la usi una volta sola in lettura basta leggere lo stato del pulsante in quel punto.
Poi mi spieghi perché dichiari alcune bool come =!HIGH (5 caratteri) e non come =LOW (3 caratteri)? Il risultato é lo stesso, ma il secondo é più chiaro.

Non ho ancora attaccato oa loop()

come scritto a molte delle cose che indichi ci avevo già pensato. Altre si potrebbero fare, ma quanto shrinko? 10-20-50 byte? ormai sono fuori di 600 byte.

"!HIGH" capisco la perplessità, ma cio' che sembra chiaro a te non lo per me. Uso "!HIGH" semplicemente perchè i relè si eccitato con stato LOW, e mi rimane piu intuitivo scrivere !HIGH per capire quando sto eccitando il relè."

I problemi non sono solo SW ma anche HW: questo progetto è stato inserito in una scatola elettrica di certe dimensioni, molto compatte... con Arduino Pro Micro è tutto compatto, se metto un mega2560 devo rifare tutto.

Eppoi considerazione conclusiva: è bello anche poter scrivere il codice con un minimo di libertà di scrittura, ottimizzando si, ma senza dover rinunciare al proprio "stile", e al modo in cui ciascuno è abituato a scriversi il codice e a leggerlo.
Inoltre c'è da distinguere due tipi di sketcher: ci sono gli smanettoni, di solito piu esperti e molto bravi, ma spesso troppo intrippati con il coding (è bello concordo), e poco pratici, ma poi ci sono anche altri che per vari motivi non hanno tempo o voglia di dedicarsi troppo ai problemi SW e HW e preferiscono realizzare il progetto in modo piu agevole (quindi evitando di dedicarsi troppoai problemi di cavilli SW). Io appartengo alla seconda specie.

L'idea di passare a STM32 è dovuta 1) al costo 2) alle dimensioni fisiche (mi consente di utilizzare lo chassis già in suo) 3) la memoria, 64K è il doppio di quello che mi serve 4) non da ultimo il clock 72Mhz invece di 16.

Almeno per questo progetto, in altri casi rimango fedele ad ATMEL. :slight_smile:

Grazie cmq delle osservazioni di cui faccio sicuramente tesoro.