Está en la página 1de 2

P011111 / Asignatura Computadoras Electrónicas– Tco. Noguera Guillermo Sebastián Gestión de tiempos y retardos.

Guillermo Sebastián Gestión de tiempos y retardos. B03 Función: millis(); Consigna: Comprender el
Guillermo Sebastián Gestión de tiempos y retardos. B03 Función: millis(); Consigna: Comprender el

B03

Función: millis();

Consigna: Comprender el funcionamiento y utilidad de millis().

Esta función puede ser muy útil para el manejo de tiempo. Tambien para generar señales digitales en función del tiempo como modulación e ancho de pulso.

Explicación.

millis() - retorna el tiempo trancurrido desde que inicia el programa.

Cuando el programa comienza el timer interno TMR0 es inicializado en 0. TMR0 es un registro de 16 bits que se incrementa en uno cada milisegundo. Al ser de 16 bits llega a overflow despues de incrementarse cada milisegundo hasta 65536 lo que corresponde a 65,536 segundos. Como función millis() retorna el valor actual de TMR0.

Declaración.

El valor que retorna es de tipo long (32bits), reinicia a 0 al llegar a 65536

Sintaxis.

millis();

_millis = 0;

// Instrucción para reiniciar la cuenta de la funcion

Ejemplo de aplicación:

void setup(){

 

pinMode(0,OUTPUT);

digitalWrite(0,LOW);

}

void loop(){

 

if (millis()>1000) {

digitalWrite(0,HIGH); // enciende el led por un segundo

}

if (millis()>2000){

_millis=0;// reinicia el contador despues de dos segundos

digitalWrite(0,LOW); // Apaga el led

}

}

P011111 / Asignatura Computadoras Electrónicas– Tco. Noguera Guillermo Sebastián Gestión de tiempos y retardos.

Guillermo Sebastián Gestión de tiempos y retardos. Ejemplo Blink con función millis() /* created 2005 by

Ejemplo Blink con función millis()

/* created 2005 by David A. Mellis modified 8 Feb 2010 by Paul Stoffregen.

This example code is in the public domain. */

const int ledPin = 13;

int ledState = LOW; long previousMillis = 0; long interval = 1000;

// the number of the LED pin

// ledState used to set the LED // will store last time LED was updated // interval at which to blink (milliseconds)

void setup() { // set the digital pin as output:

pinMode(ledPin, OUTPUT);

}

void loop()

{

B03

// check to see if it's time to blink the LED; that is, if the // difference between the current time and last time you blinked // the LED is bigger than the interval at which you want to // blink the LED. unsigned long currentMillis = millis();

if (currentMillis - previousMillis > interval) { // save the last time you blinked the LED previousMillis=currentMillis; // if the LED is off turn it on and vice-versa:

if (ledState == LOW) ledState=HIGH; else ledState=LOW;

// set the LED with the ledState of the variable:

digitalWrite(ledPin, ledState);

}

}

Consultas: guillenoguera@gmail.com Asunto: millis()