Diferencia entre revisiones de «micros()»

De ArduWiki
Saltar a: navegación, buscar
(Vea también)
(Descripción)
 
(No se muestran 5 ediciones intermedias de 2 usuarios)
Línea 1: Línea 1:
 
== Descripción ==
 
== 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.
+
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 ==
 
== Sintaxis ==
Línea 12: Línea 12:
 
== Retornos ==
 
== Retornos ==
 
Número de microsegundos desde que se inició el boceto. Tipo de dato [[unsigned long]].
 
Número de microsegundos desde que se inició el boceto. Tipo de dato [[unsigned long]].
 +
 +
== Comentarios ==
 +
{{Tip|Este comando tarda 47 ciclos de CPU.}}
  
 
== Advertencias ==
 
== 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 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);
 
}
 
}
Línea 34: Línea 38:
  
 
== Vea también ==
 
== Vea también ==
* [[millis()]]
+
<categorytree mode=all>Funciones tiempo</categorytree>
  
== Referencias ==
+
== Referencias externas ==
 
* [https://www.arduino.cc/reference/es/language/functions/time/micros/ Guia de referencia de Arduino]
 
* [https://www.arduino.cc/reference/es/language/functions/time/micros/ Guia de referencia de Arduino]
  
[[Category:Funciones]]
+
[[Category:Funciones tiempo]]

Revisión actual del 10:03 21 sep 2019

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.

Comentarios

Tip: Este comando tarda 47 ciclos de CPU.


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 externas