Timer2\ Timer2 \ Language (API) \ Wiring ALPHA 1.0
Author: Hernando Barragán
Description: Wiring is an electronic sketchbook and hardware electronics for developing ideas. It is a context for learning fundamentals of computer programming and prototyping with electronics within the context of the electronic arts.
Keywords: Wiring, Processing, Interactive Media, Electronic Arts, Programming, C, C++, Hernando Barragán

Search wiring.org.co:

Reference for Wiring version 0024+. If you have a previous version, use the reference included with your software. If you 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 January 25, 2010 11:20:41pm PST