top of page

Treballant amb temps. millis ( ) vs delay ( )

La instrucció delay ( ); té un efecte secundari: bloqueja tota activitat de la placa durant el temps definit (en ms).

Aixó pot ser greu, perquè durant aquest temps poden passar coses a les que s'hauria de donar resposta. Si la placa està bloquejada no haurà resposta perquè tampoc es rebrà cap estímul.

La funció millis ( ); consulta el rellotge intern de la placa i retorna el temps que porta en funcionament (en ms). Permet definir durades d'esdeveniments sense necessitat de bloquejar la placa.

Podem comprobar-ho:

Cronometre.png

La funció millis

Comprovem el funcionament de millis:

Aquest sketch mostra pel monitor sèrie el valor de millis a intervals d'1 segon (temps definit amb delay)

unsigned long: variables que emmagatzemen nombres llargs sense signe.

void setup ( ) 
{
Serial.begin (115200); }

void loop ( ) 
{
 
unsigned long temps = millis ( );
 
Serial.print ("temps transcorregut: ");
 
Serial.print (temps);

  Serial.println (" ms");
 
delay (1000);
}

El valor que es mostra al monitor sèrie és el temps que la placa porta en funcionament. Fixeu-vos que efectivament, cada 1000 ms el valor augmenta 1000.

Temps1.png
bottom of page