Buona sera a tutti,
vorrei sapere se dopo un' interrogazione di una porta di arduino con relativa assegnazione in una variabile passate anche 50 righe di programma, la variabile stato sarà invariata? Cioè, non "perde" l'assegnazione?
void setup()
{
bool stato = 0;
pinMode(5, OUTPUT);
Serial.begin(9600);
}
void loop()
{
stato = digitalRead(5);
//...50 righe dopo...
//...
//...
if (stato == 0) Serial.println(F("OFF"));
if (stato == 1) Serial.println(F("ON"));
}
Ciao.
Se fai le cose fatte bene la variabile una volta assegnata non perde il valore.
Il codice che hai messo credo non compili nemmeno... stato è locale al setup() e quindi non è visibile nel loop(). Sposta la dichiarazione fuori dal setup().
Oppure si può mettere la dichiarazione 'bool' dentro al loop, dipende da cosa si vuole fare. Una variabile dichiarata fuori da tutto è globale, visibile e modificabile da ogni funzione, e mantiene il valore fino a nuovo assegnamento. Una variabile dichiarata dentro una funzione mantiene il valore fino alla fine della funzione, poi svanisce... a meno di dichiararla static, e allora mantiene, ma è visibile solo all'interno della funzione in cui è dichiarata.