timer example oop program

Example of simple timer. It consists of three files (TimerOOP.ino, miTimer.h miTimer.cpp). The first of them how simple it can be is going programs with timer.

I hope you help

a greeting.

juan.acisa@gmail.com

TimerOOP.ino

/*----------------------------------------------------------------------
 juan.acisa@gmail.com
 
 Timer OOP
 TimerOOP
 
 Uso de timer con programacion orientada a objetos
 
 20151101D0002
 ----------------------------------------------------------------------*/
#include "miTimer.h"

miTimer T1(1000);
miTimer T2(3000);
miTimer T3(7000);

void setup() 
{
  Serial.begin(9600);
}

void loop() 
{
  if ( T1.Activo() ) Serial.println(" T1 activo cada 1000 milisegundos");
  if ( T2.Activo() ) Serial.println("   T2 activo cada 3000 milisegundos");
  if ( T3.Activo() ) Serial.println("       T3 activo cada 7000 milisegundos");
}

miTimer.h

/* ----------------------------------------------------------------------

  miTimer.h - Libreria para emular la funcion timer
  
  Parametros entrada:
    milisegundos de espera
    
  Metodos
    Set: unsigned long de entrada de los milisegundos de espera para el timer
    Activo: boolean de salida para saber si esta activo el timer
    
  20151101D0124
  ---------------------------------------------------------------------- */

#ifndef miTimer_h
  #define miTimer_h


  #if ARDUINO >= 100
    #include "Arduino.h"
  #else
    #include "WProgram.h"
  #endif
  

  class miTimer {
  
  private:
    unsigned long _ms;
    unsigned long _ms_espera;
    unsigned long _ms_anterior;
  
  public:
    miTimer( unsigned long milisegundos );
    boolean Activo();
  
  };

#endif

miTimer.cpp

/* ----------------------------------------------------------------------

  miTimer.cpp - Libreria para emular la funcion timer
  
  Parametros entrada:
    milisegundos de espera
    
  Metodos
    Set: unsigned long de entrada de los milisegundos de espera para el timer
    Activo: boolean de salida para saber si esta activo el timer
    
  20151101D0124
---------------------------------------------------------------------- */

#include "miTimer.h"

  miTimer::miTimer( unsigned long ms_espera )
  {  
    _ms_espera = ms_espera ;
    _ms_anterior = millis();
  }

  boolean miTimer::Activo() {
    _ms = millis();
    if ( _ms - _ms_anterior >= _ms_espera or _ms < _ms_anterior) {
      _ms_anterior = _ms;
      return true;
    }
    else
      return false;
  }