Diferencia entre revisiones de «micros()»
De ArduWiki
(→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 | + | unsigned long tiempo; |
void setup(){ | void setup(){ | ||
Serial.begin(9600); | Serial.begin(9600); | ||
} | } | ||
void loop(){ | void loop(){ | ||
− | Serial.print(" | + | Serial.print("Tiempo: "); |
− | + | tiempo = micros(); | |
− | // | + | // Imprime los microsegundos transcurridos desde que se inició el programa |
− | Serial.println( | + | Serial.println(tiempo); |
− | // | + | // 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 == | ||
− | + | <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 14:03 21 sep 2019
Contenido
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