Reference for Wiring version 0027+ If you have a previous version, use the reference includede with your software. If see any errors or have any comments, let us know.

Name

Timer2

Examples
#include "HardwareTimer2.h";

int ledPin = 48;  // onboard LED on the Wiring I/O board (pin 48) 
byte value = HIGH; 

void setup()
{
  pinMode(ledPin, OUTPUT);  // sets the digital pin as output
  
  // sets Timer2 to execute function ledFlash() every 100ms
  Timer2.set(100, ledFlash);  
  
  // sets Timer2 to execute function ledFlash() using timer prescaler 1024
  // F_CPU / 1024 in a 16Mhz will be 15625 
  // 15625 / 255 = 61.27 overflows (full countings to 255)
  // 1000ms / 61.27 = 16.32ms, so function ledFlash() will be executed every 16.32ms
    
  //Timer2.set(ledFlash, CLOCK_DIV1024);
    
  // start timer
  Timer2.start();
}

void loop()
{
}

void ledFlash() {
  digitalWrite(ledPin, value);
  if(value == HIGH) 
    value = LOW;
  else
    value = HIGH; 
}
Description Timer2 is an 8-bit hardware timer present in many Atmel microcontrollers. A hardware timer might be used among other things to clock events. The Timer2 library allows for flexible manipulation of this hardware timer. The timer can be set to execute a function every certain milliseconds, a difference with setting up a software timer is the precision. Timer2 clock source is the main CPU clock which runs at 16Mhz F_CPU = 16000000, this frequency might be too fast for many uses, (1/16000000) of a second, so a prescaler is used for the clock source. A prescaler is the cpu speed divided by some power of 2. There are some prescalers defined for Timer2: CLOCK_DIV1, CLOCK_DIV8, CLOCK_DIV32, CLOCK_DIV64, CLOCK_DIV128, CLOCK_DIV256 and CLOCK_DIV1024, which are respectively F_CPU/1, F_CPU/8, F_CPU/32, F_CPU/128, F_CPU/256 and F_CPU/1024. For flexibility, Timer2 can be set in two ways, one to execute a function every certain milliseconds and the second to execute a function at a frequency defined by a prescaler. Depending on the hardware, some prescalers for Timer2 might not be available, for example for the atmega128 microcontroller the prescalers CLOCK_DIV32 and CLOCK_DIV128 are not defined, but they are defined for Timer2 on atmega1281 and atmega2561. Since Timer2 is an 8-bit timer internally it overflows when its counter TCNT2 reaches the value 255. For advanced users: it is possible to set TCNT2 directly in the user defined function to do things in fractions of a determined prescaler. For more information about this check the source code for the library which is included with the Wiring distribution.
Syntax
Timer2
Methods
set() Sets Timer2
start() Starts TImer2
stop() Stops Timer2
Returns None
Usage Application
Updated on February 22, 2011 06:17:35pm PST

Creative Commons License