1 / 14

ATtiny2313 Timers/Counters

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) ‏.

aurora
Download Presentation

ATtiny2313 Timers/Counters

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS-423 Dick Steflik ATtiny2313Timers/Counters

  2. 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)‏

  3. 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

  4. 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

  5. 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

  6. 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

  7. 2 Timer/Counter Units • 8-bit Timer/Counter0 w/PWM • 16-bit Timer/Counter1 • Timer/Counter1 and Timer/Counter0 prescalers

  8. 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

  9. 8-bit Timer/Counter0

  10. 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

  11. 16-bit Timer/Counter1

  12. 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

  13. 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

  14. Prescaler

More Related