Occhio perché così come lo hai commentato, sia per case 1: che per case 2: esegue comunque il codice del case 2: ... manca difatti una break per interrompere il case 1:
Nell'attuale codice che hai postato non c'è il break
case 1:
// Serial.print("indirizzo attuale");
// Serial.println(indirizzo);
//scrivi_su_led();
// enter_state=digitalRead(enter);
// if (enter_state != enter_laststate ) { if (enter_state==HIGH) _indirizzo(); Serial.print("indirizzo nuovo"); leggi_indirizzo(); } break;
Il break è in fondo ad una linea commentata, quindi è ignorato.
Ah, altra cosa: non prendere il vizio di scrivere più istruzioni su una stessa riga. Il codice diventa illeggibile.
Ogni istruzione va su una riga.
aspi:
no nel primo case alla fine c'è il break...
...
Ohi ...
case 1:
// Serial.print("indirizzo attuale");
// Serial.println(indirizzo);
// scrivi_su_led();
// enter_state=digitalRead(enter);
// if (enter_state != enter_laststate ) { if (enter_state==HIGH) _indirizzo(); Serial.print("indirizzo nuovo"); leggi_indirizzo(); } break;
... questo è il codice che hai postato, ed al mio paese TUTTO quello che segue i //, sulla stessa riga, è considerato commento quindi ... il break NON c'è e case 1: e case 2: eseguono lo stesso codice
Allora posta il VERO codice che ti da il problema e poi cerchiamo di capire cosa c'è ....
Guglielmo
@Leo : Ahahahahah ... ci siamo sovrapposti con la risposta
NO guarda ... hai di nuovo modificato qualche cosa perché, prima di scrivere il messaggio, mi sono tolto lo sfizio di provare a compilare e da errore esattamente su quella graffa (... come è logico che sia), quindi ...
vero scusa mi era scappata però ho provato a mettere il break come commento e andava lo stesso.
ho riprovato con questo codice che ho postato e sul monitor seriale mi scrive ancora il numero del contatore del primo case...