Diferencia entre revisiones de «millis()»
De ArduWiki
(→Advertencias) |
(→Retornos) |
||
Línea 12: | Línea 12: | ||
== Retornos == | == Retornos == | ||
Número de milisegundos desde que el programa se inició. Numero tipo [[unsigned long]]. | Número de milisegundos desde que el programa se inició. Numero tipo [[unsigned long]]. | ||
+ | |||
+ | == Comentario == | ||
+ | Se puede resetear el temporisador de millis() ? | ||
== Advertencias == | == Advertencias == |
Revisión del 16:08 27 feb 2019
Contenido
Descripción
Devuelve el número de milisegundos desde que la placa Arduino empezó a ejecutar el programa actual. Este número se desbordará (volverá a cero), después de aproximadamente 50 días.
Sintaxis
millis();
Parámetros
Nada.
Retornos
Número de milisegundos desde que el programa se inició. Numero tipo unsigned long.
Comentario
Se puede resetear el temporisador de millis() ?
Advertencias
- Tenga en cuenta el tipo de valor que retorno millis() es unsigned long y pueden producirse errores lógicos si hacer operaciones aritméticas con otros tipos de datos más pequeños como: byte o int, incluso los long con signo pueden producir errores de calculo.
- millis() funciona mediante una interrupción (la misma de micros()); por lo tanto, su valor dejará de incrementar 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 hora=0; //Es muy importante respetar el tipo de dato void setup() { pinMode(13, OUTPUT); } void loop() { if (milis() - hora >= 500){ hora = millis(); //Guarda a hora de cada cambio digitalWrite(13, !digitalRead(13)); //Invierte valor del pin } }