Go Down

Topic: calcolo tempo di un ciclo (Read 636 times) previous topic - next topic

gelholder

Buongiorno a tutti,
    sono nuovamente qui a chiedervi un consiglio, ho realizzato uno sketch ed avrei bisogno di sapere esattamente il tempo (che dovrebbe essere di circa 1/2 sec) impiegato da arduino a completare un ciclo.

Immagino di dover affidarmi a millis... ma non ho idea di come fare.
Come avrete intuito sono un neofita.

Vi ringrazio tutti per l'aiuto che date a noi neofiti con questo forum.
A presto.
Grazie

nid69ita

Fai la differenza di un millis() iniziale e uno finale memorizzando il primo in una variabile long che si potrebbe chiamare start:
Code: [Select]
void loop()
{ start=millis();
....
....
Serial.println(millis()-start);
}
my name is IGOR, not AIGOR

uwefed

per una misura precia fai prima un ciclo vuoto e poi uno col codice.
void loop()
{ start=millis();
Serial.println(millis()-start);
start=millis();
....
....
Serial.println(millis()-start);
}

PaoloP


per una misura precisa fai prima un ciclo vuoto e poi uno col codice.


Mi sfugge il motivo. Perche?
Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

uwefed

Perché il ciclo stesso ha bisogno di un certo tempo.
Sai quanto Ti mangia un "Serial.println(millis()-start);" con un baudrate di 9600 anche 5mS
Ciao Uwe

gelholder

Presto detto!
Avevo bisogno di sapere il tempo del ciclo del mio sketch in quanto devo effettuare delle trasmissioni radio usando un trasmettitore della Aurel da 500mW.
La normativa sulle radiofrequenze dà la possibilità di usare "gratuitamente" una potenza così "alta" (normalmente è di 10mW) solo se si trasmette al massimo per il 10% del tempo. Cioè, se il mio flusso di dati impiega 1sec. non posso trasmettere per i successivi 10sec.
Nel mio caso, grazie al vostro aiuto, ho visto che il mio ciclo impiega 1200ms e quindi devo impostare un delay a fine ciclo di 12sec per non aver problemi con la legge.

Grazie ancora per i vostri consigli.

Go Up