+ All Categories
Home > Documents > ATtiny2313 Timers/Counters

ATtiny2313 Timers/Counters

Date post: 06-Jan-2016
Category:
Upload: aurora
View: 56 times
Download: 5 times
Share this document with a friend
Description:
CS-423 Dick Steflik. ATtiny2313 Timers/Counters. What Do You Use Timers For?. Timing of events (internal or external) ‏ Scheduling Events Measuring the width of a pulse Speed control of motors (PWM) ‏ Generation of complex waveforms Frequency generation (sounds) ‏. - PowerPoint PPT Presentation
Popular Tags:
14
ATtiny2313 Timers/Counters CS-423 Dick Steflik
Transcript
Page 1: ATtiny2313 Timers/Counters

ATtiny2313Timers/Counters

CS-423Dick Steflik

Page 2: ATtiny2313 Timers/Counters

What Do You Use Timers For?

Timing of events (internal or external) Scheduling Events Measuring the width of a pulse Speed control of motors (PWM) Generation of complex waveforms Frequency generation (sounds)

Page 3: ATtiny2313 Timers/Counters

The concept of using a timer/counter

Counters run asynchronously to your code Can be setup to start based on an internal or

external event Can generate interrupts Can signal to a pin

Page 4: ATtiny2313 Timers/Counters

Example

To time a piece of code: Initial the counter to 0, have it interrupt on overflow Interrupt handler should count overflows Start the counter Run your code At end of code read counter and add to number of

overflows to get total time

Page 5: ATtiny2313 Timers/Counters

Example

To time an incoming pulse/event: Setup interrupts on rising and falling edge of pulse

and overflow of counter In handler for rising edge start counter In handler for overflow, count the overflows In handler for falling edge read counter and add

overflows to get time of pulse/event

Page 6: ATtiny2313 Timers/Counters

Example

Motor control: Use counter to generate a pulse train to control

speed of DC motors Full speed = full power (infinitely wide pulse Low speed = narrow pulses with wide down time 50% speed = equal up and down times

Can only control very small motoers directly, must use high power transistors to drive bigger motors

This is came idea as intermittent wipers on a car

Page 7: ATtiny2313 Timers/Counters

2 Timer/Counter Units

8-bit Timer/Counter0 w/PWM 16-bit Timer/Counter1 Timer/Counter1 and Timer/Counter0 prescalers

Page 8: ATtiny2313 Timers/Counters

8-bit Timer/Counter0

Single channel counter Frequency Generator External Event Counter 10-bit clock prescaler

Only used with internal clock Scale by: 1, 8, 64, 256, 1024

Page 9: ATtiny2313 Timers/Counters

8-bit Timer/Counter0

Page 10: ATtiny2313 Timers/Counters

8-bit Timer/Counter0

Sample code can be found at: http://winavr.scienceprog.com/avr-gcc-tutorial/control-avr-8-bit-timer-counter0-using-avr-

gcc.html

Page 11: ATtiny2313 Timers/Counters

16-bit Timer/Counter1

Page 12: ATtiny2313 Timers/Counters

Modes of Operation

Normal Mode – always counts up, no clear, counter just overruns

Clear Timer on Compare match (CTC mode)

Fast PWM Mode

Phase Correct PWM mode

Phase and Frequence Correct PWM mode

Page 13: ATtiny2313 Timers/Counters

16-bit Timer/Counter1

Sample code can be found at: http://winavr.scienceprog.com/avr-gcc-tutorial/program-16-bit-avr-timer-with-

winavr.html

Page 14: ATtiny2313 Timers/Counters

Prescaler


Recommended