Cerco di spiegarmi meglio, dalla prima lettura di alcune variabile, che cambiano continuamente, tramite operazione matematica, ottengo un valore che vorrei mantenere inalterato per un certo periodo di tempo, ma non trovo il sistema di farlo, ho provato anche la funzione millis, ma non riesco ad utilizzarla come vorrei.
allego un pezzo di listato per farvi capire meglio
// ACCORDO AUTOMATICO IN TRASMISSIONE
if (tune == 1 && tx == 0 ){
//RICEVO DAL ROSMETRO LE TENSIONI DIRETTA E RIFLESSA
timer_ros = millis();
float VDir;
VDir=analogRead(Dir); // Misuro la tensione diretta
float VRif;
VRif=analogRead(Rif); // Misura la tensione riflessa
// CALCOLO IL ROS
VSWR = ((VDir/(1023/5))+(VRif/(1023/5)))/((VDir/(1023/5))-(VRif/(1023/5)));
VSWR = (VSWR*10)/10;
if(timer - timer_ros > 3000) {
preros = VSWR;
timer_ros=millis();
}
}
in pratica i valori VDir e VRif cambiano in continuazione , vorrei memorizzare in una variale "preros" la prima lettura effettuata e mantenerla per un certo periodo di tempo o meglio ancora, fino a quando le condizione della if principale non cambiano
con l'utilizzo di millis(), come da listato, il valore viene memorizzato in preros , solo dopo 3 secondi, ma non ho il valore iniziale
non riesco a trovare il sistema, un'aiuto o uno spunto per risolvere il problema
grazie