Line 27: Line 27:
 
|}
 
|}
  
 +
{| class="wikitable floatright" style="float:right; background-color:#3DA8BB;"
 +
!D2||D1||D0||Clock Source
 +
|-
 +
!CS02||CS01||CS00||Freq
 +
|-
 +
|0||0||0|| No Clock (Stopped)
 +
|-
 +
|0||0||1||Clk
 +
|-
 +
|0||1||0||Clk/8
 +
|-
 +
|0||1||1||Clk/64
 +
|-
 +
|1||0||0||Clk/256
 +
|-
 +
|1||0||1||Clk/1024
 +
|-
 +
|1||1||0||Clk/T0-Falling edge
 +
|-
 +
|1||1||1||Clk/T0-Rising Edge
 +
|}
 +
 +
 +
|}
 
{| class="wikitable floatright" style="float:right; background-color:#3DA8BB;"
 
{| class="wikitable floatright" style="float:right; background-color:#3DA8BB;"
 
!D6||D3||PWM
 
!D6||D3||PWM

Revision as of 11:08, 24 November 2014

Basics

Timer/Counter Unit

Timers come in handy when you want to set some time interval like your alarm. This can be very precise to a few microseconds. Timers/Counters are essential part of any modern MCU. Remember it is the same hardware unit inside the MCU that is used either as Timers or Counter. Timers/counters are an independent unit inside a micro-controller. They basically run independently of what task CPU is performing. Hence they come in very handy, and are primarily used for the following:

  • Internal Timer: As an internal timer the unit, ticks on the oscillator frequency. The oscillator frequency can be directly feed to the timer or it can be pre-scaled. In this mode it used generate precise delays. Or as precise time counting machine.
  • External Counter: In this mode the unit is used to count events on a specific external pin on a MCU.
  • Pulse width Modulation(PWM) Generator: PWM is used in speed control of motors and various other applications.

Timers/Counters in AVR

Timer 0

Timer 0.png

Timer 0 Registers

TCNT0: Timer/Counter Register 0

TCNT0
Timer/Counter 0
D7 D6 D5 D4 D3 D2 D1 D0

TCCR0: Timer/Counter Control Register

TCCR0
D7 D6 D5 D4 D3 D2 D1 D0
FOC0 WGM00 COM01 COM00 WGM01 CS02 CS01 CS00
D2 D1 D0 Clock Source
CS02 CS01 CS00 Freq
0 0 0 No Clock (Stopped)
0 0 1 Clk
0 1 0 Clk/8
0 1 1 Clk/64
1 0 0 Clk/256
1 0 1 Clk/1024
1 1 0 Clk/T0-Falling edge
1 1 1 Clk/T0-Rising Edge


|}

D6 D3 PWM
WGM00 WGM01 Mode
0 0 Normal
0 1 CTC (Clear timer on compare match)
1 0 PWM (Phase correct)
1 1 Fast PWM

Timer 1

Timer 2