Diferencia entre revisiones de «micros()»

De ArduWiki
Saltar a: navegación, buscar
(Vea también)
Línea 16: Línea 16:
 
* En placas Arduino de 16 MHz  (UNO, Duemilanove y NANO), esta función tiene una resolución de '''cuatro microsegundos''', es decir el valor devuelto es siempre un múltiplo de cuatro.  
 
* En placas Arduino de 16 MHz  (UNO, Duemilanove y NANO), esta función tiene una resolución de '''cuatro microsegundos''', es decir el valor devuelto es siempre un múltiplo de cuatro.  
 
* En las placas Arduino 8 MHz (LilyPad), esta función tiene una resolución de '''ocho microsegundos''', es decir el valor devuelto es siempre un múltiplo de ocho.  
 
* En las placas Arduino 8 MHz (LilyPad), esta función tiene una resolución de '''ocho microsegundos''', es decir el valor devuelto es siempre un múltiplo de ocho.  
 +
* micros() funciona mediante una interrupción (la misma de [[millis()]]); por lo tanto, su valor dejará de incrementar (pero puede variar sólo un poco) durante una rutina de servicio de interrupción (ej.: posterior a [[attachInterrupt()]]), o mientras no se llame a [[interrupts()]] después de llamar a [[noInterrupts()]].
  
 
== Ejemplo ==
 
== Ejemplo ==
 
<pre>
 
<pre>
unsigned long time;
+
unsigned long tiempo;
 
void setup(){
 
void setup(){
 
   Serial.begin(9600);
 
   Serial.begin(9600);
 
}
 
}
 
void loop(){
 
void loop(){
   Serial.print("Time: ");
+
   Serial.print("Tiempo: ");
   time = micros();
+
   tiempo = micros();
   //prints time since program started
+
   // Imprime los microsegundos transcurridos desde que se inició el programa
   Serial.println(time);
+
   Serial.println(tiempo);
   // wait a second so as not to send massive amounts of data
+
   // Esperar un segundo para así no inundar el puerto con muchos datos
 
   delay(1000);
 
   delay(1000);
 
}
 
}

Revisión del 16:21 17 jun 2018

Descripción

Devuelve el número de microsegundos desde la que placa Arduino empezó a ejecutar el boceto actual. Este número se desbordará (volverá a cero), después de aproximadamente 70 minutos. 1 segundo = 1000 000 microsegundos.

Sintaxis

micros();

Parámetros

Ninguno.

Retornos

Número de microsegundos desde que se inició el boceto. Tipo de dato unsigned long.

Advertencias

  • En placas Arduino de 16 MHz (UNO, Duemilanove y NANO), esta función tiene una resolución de cuatro microsegundos, es decir el valor devuelto es siempre un múltiplo de cuatro.
  • En las placas Arduino 8 MHz (LilyPad), esta función tiene una resolución de ocho microsegundos, es decir el valor devuelto es siempre un múltiplo de ocho.
  • micros() funciona mediante una interrupción (la misma de millis()); por lo tanto, su valor dejará de incrementar (pero puede variar sólo un poco) durante una rutina de servicio de interrupción (ej.: posterior a attachInterrupt()), o mientras no se llame a interrupts() después de llamar a noInterrupts().

Ejemplo

unsigned long tiempo;
void setup(){
  Serial.begin(9600);
}
void loop(){
  Serial.print("Tiempo: ");
  tiempo = micros();
  // Imprime los microsegundos transcurridos desde que se inició el programa
  Serial.println(tiempo);
  // Esperar un segundo para así no inundar el puerto con muchos datos
  delay(1000);
}

Vea también

Referencias