Diferencia entre revisiones de «micros()»
De ArduWiki
(→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 | + | 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); | ||
} | } |
Revisión del 20:21 17 jun 2018
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.
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); }