Serial.print al cambio valore

sera a tutti , invece di scrivere cosi per fare un serial.print ogni volta che un valore cambia , si puo ' fare in un modo piu' veloce evitando di creare variabili di confronto?

 if (nuovo_valore != vecchio_valore) {
    Serial.print("valore ");
     vecchi_valore = nuovo_valore;
  }

No, non si può fare in maniera diversa. Devi confrontare il vecchio valore con il nuovo valore per sapere se è diverso, per farlo serve un istruzione condizionale, qualunque istruzione utilizzassi, non cambierebbe molto.

Come detto no. Per definizione ogni volta che un programma deve tenere conto di uno stato passato... serve una variabile di stato / flag che memorizzi questa informazione.

Ci sono casi molto specifici in cui l'if si può non scrivere, ma la variabile per lo stato al tempo T-1 rimane comunque necessaria (l'esempio seguente inverte la variabile 'led' ogni volta che 'nuovo_stato' passa da 0 a 1).

led ^= nuovo_stato && !vecchio_stato;
vecchio_stato = nuovo_stato

grazie della risposta, la mia era una domanda fatta in generale, di sola curiosita'
grazie e buona giornata

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.