Timers/Counters.

Slides:



Advertisements
Similar presentations
The 8051 Microcontroller and Embedded Systems
Advertisements

More fun with Timer/Counters
Timers in Hardware ECE152. Overview Why are timers important – Watchdog – Task switching – Accurate time of day Can use polling or interrupts.
8-Bit Timer/Counter 0 Counter/Timer 0 and 2 (TCNT0, TCNT2) are nearly identical. Differences: -TCNT0 can run off an external 32Khz clock (Tosc) or the.
ATtiny2313 Timers/Counters CS-423 Dick Steflik. What Do You Use Timers For? Timing of events (internal or external)‏ Scheduling Events Measuring the width.
5-1 Timer/Counters In many microprocessor systems we need to:  count logic pulses  measure the frequency of signals  measure the period of pulses 
Timers and Interrupts Shivendu Bhushan Summer Camp ‘13.
Pulse Width Modulation modes
Timers and Interrupts Shivendu Bhushan Sonu Agarwal.
The Use of Microcontrollers
16-Bit Timer/Counter 1 and 3 Counter/Timer 1,3 (TCNT1, TCNT3) are identical in function. Three separate comparison registers exist. Thus, three separate.
1 Timing System Timing System Applications. 2 Timing System components Counting mechanisms Input capture mechanisms Output capture mechanisms.
CHAPTER TIMER PROGRAMMING Timers The 8051 has two timers/counters, they can be used as ◦ Timers to generate a time delay ◦ Event counters.
8051 timer/counter.
7/23 Timers in Coldfire Processor Computer Science & Engineering Department Arizona State University Tempe, AZ Dr. Yann-Hang Lee (480)
Slides created by: Professor Ian G. Harris Interrupts  Embedded systems often perform some tasks which are infrequent and possibly unpredictable Hang.
Timer/counter Chapter 12
ARM Timers.
System Clocks.
A Few Words From Dilbert
Timers ELEC 330 Digital Systems Engineering Dr. Ron Hayne
Timers /Counters Programming  The 8051 has 2 timers/counters: ○ timer/counter 0 ○ timer/counter 1 They can be used as 1. The timer is used as a time.
ELE22MIC Lecture 18 The AVR Sleep Modes The ATMEGA128’s Timer System
Counter/Timer/PWM. incoming Lab. Counter counter is a device which stores the number of times a particular event or process has occurred synchronous/asynchronous.
AVR Programming: Timers October 8, What is a timer? A register that keeps track of a current value This value is updated at a certain frequency.
1 68HC11 Timer Chapter HC11 Timer Subsystem Several timing functions: Basic timing Basic timing Real time interrupts Real time interrupts Output.
Timers and Interrupts Anurag Dwivedi. Let Us Revise.
CS-280 Dr. Mark L. Hornick 1 Atmel Timer/Counter System Most microcontrollers include some type of timer system Facilitates real-time monitoring and control.
1 68HC11 Timer HC11 or HC12: Chapter HC11 Timer Subsystem  Several timing functions: Basic timing Basic timing Real time interrupts Real time.
Timers and Scheduled Interrupts
Jump, Loop, and Call Instructions
Interrupt On a very basic level, an interrupt is a signal that interrupts the current processor activity. It may be triggered by an external event (change.
TIMERS AND INTERRUPTS AVI SINGH KEVIN JOSE PIYUSH AWASTHI.
The AVR microcontroller and embedded systems using assembly and c AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi.
#1 of 10 Tutorial Introduction PURPOSE -To explain how to configure and use the Timer Interface Module in common applications OBJECTIVES: -Identify the.
16-Bit Timer/Counter 1 and 3
Timers and Scheduled Interrupts
Embedded Systems Programming Interrupts and Handlers
BM-305 Mikrodenetleyiciler Güz 2016 (8. Sunu)
Why are Timer Functions Important?
Servos Elementary Robotics with Servos
Outline Introduction to Arduino UNO Programming environment setup GPIO
V.V.P. ENGINEERING COLLEGE,RAJKOT
ECE 3430 – Intro to Microcomputer Systems
BITS EDU. CAMPUS , VARNAMA
4-Integrating Peripherals in Embedded Systems
Programmable Interval Timer
AVR Addressing Modes Subject: Microcontoller & Interfacing
8-Bit Timer/Counter 0 Counter/Timer 0 and 2 (TCNT0, TCNT2) are nearly identical. Differences: -TCNT0 can run off an external 32Khz clock (Tosc) or the.
COMP2121: Microprocessors and Interfacing
Timer/Counter Modified from Dr. Lam Phung’s Slides.
16-bit Timer/Counter1 Features
8-bit Timer/Counter0 with PWM
EMT 348: Microcontroller Timer/counter
DC motor and PWM.
Programmable Interval timer 8253 / 8254
8-bit Timer/Counter2 with PWM and Asynchronous Operation
전자의료시스템 및 실습 System Configuration/Interrupt
PIC18 Timer Programming “Explain the assembly language programming for the timer and counter module”
Programmable Interval timer 8253 / 8254
Wave Generation and Input Capturing
Interrupt Chapter 10.
8253 – PROGRAMMABLE INTERVAL TIMER (PIT). What is a Timer? Timer is a specialized type of device that is used to measure timing intervals. Timers can.
MCO556 Timer System Exercise.
Timer/Counter Timer/Counter 0 Timer/Counter 1 Timer/Counter 2 8 bit
Programmable Interval Timer
Presentation transcript:

Timers/Counters

Counter Register

Karşılaştırıcısız çözüm olur mu? A Simple Design (Counting 4 People) First Design (Counter Register has initial value of zero) Sensor Karşılaştırıcısız çözüm olur mu?

Karşılaştırıcısız çözüm A Simple Design (Counting 4 People) Second Design (Counter Register has initial value of 0xFC) Sensor Karşılaştırıcısız çözüm

A Simple Design (Making 4 Clock Cycles Delay) Bu sayıcı bir sensör yerine periyodik bir saat sinyali ile tetiklendiği için bir zamanlayıcıya dönüşmüştür.

A Generic Timer/Counter Delay generating Counting Wave-form generating

Timers/Counters in AVR ATMega328PU Two 8-bit Timers/Counters (0-255) Timer 0 Timer 2 One 16-bit Timer/Counter (0-65535) Timer 1

Timer Registers and Flags TCNTn (Timer/CouNTer Register) TOVn (Timer OVerflow Flag) TCCRn (Timer/Counter Control Register) OCRn (Output Compare Register) OCFn (Output Compare Match Flag) TIFRn (Timer Interrupt Flag Register) TCCRn TCNTn TOVn = OCFn n 0, 1 veya 2 değerini alır. OCRn

Normal Mode (Timer 0) 1 FF FE 2 1 TOV0 = 1 TOV0: 0xFF TCNT0 TOV TOV time 1 TOV0 = 1 1 TOV0:

Example 1: Write a Program that Waits 14 Machine Cycles in Normal Mode. $100 -$0E $F2 $F2 Question: How to calculate the delay generated by the timer? Answer: 1) Calculate how much a machine clock lasts. T= 1/f 2) Calculate how many machine clocks it waits. 3) Delay = T * number of machine cycles

Finding Values to be Loaded into the Timer 0 Calculate the period of clock source. Period = 1 / Frequency E.g. For XTAL = 8 MHz  T = 1/8MHz Divide the desired time delay by period of clock. Perform 256 - n, where n is the decimal value we got in Step 2. Set TCNT0 = 256 - n

CTC (Clear Timer on Compare Match) Mode (Timer 0) TCNT0 0xFF OCR0 OCF0 OCF0 OCF0 time OCR0 xx 2 1 TOV0: TOV0 = no change OCF0 = 1 1 OCF0:

Prescaler

Timer 1 (A 16-bit Timer)

Timer 1 OCR1B (OCR1BH + OCR1BL) = TCCR1A TCCR1B OCF1B TCCR1A TCCR1B TCNT1 (TCNT1H + TCNT1L) TOV1 = OCF1A OCR1A (OCR1AH + OCR1AL)

Timer 1 Registers

Timer Clock Selector (CS1x) 6 Timer Clock Selector (CS1x) 7

Timer Mode Selector (WGM1x)

Wrap Times (Fcpu=16 MHz) TIMER 0 is 8-bit (0−255) when prescaler = 1, reaches full count in 16 ms when prescaler = 1024, full count in 16.384 ms TIMER 1 is 16-bit (0−65536) when prescaler = 1, reaches full count in 4.096 ms when prescaler = 1024, full count in 4.194 seconds TIMER 2 is 8-bit (0−255) These wrap times set limits on timed interrupts makes TIMER 1 attractive, for its 16 bits

A Complete Timer 1 AVR C Example (V1) (Normal Mode) Yoklama (Polling). Kesmeden Farkı? Bayrağı Silmek İçin Set Etmek Gerekli??

A Complete Timer 1 AVR C Example (V2) (Normal Mode)

A Complete Timer 1 AVR C Example (CTC Mode)

AVR C Definitions for ATMega328P The bit values WGM12, CS10, etc. are defined in iom328p.h Its location is hardware/tools/avr/avr/include/avr/ For example: #define CS10 0 #define CS11 1 #define CS12 2 #define WGM12 3 #define WGM13 4 #define ICES1 6 #define ICNC1 7 #define OCR1A _SFR_MEM16(0x88) #define OCR1AL _SFR_MEM8(0x88) #define OCR1AH _SFR_MEM8(0x89) #define TIMER1_COMPA_vect _VECTOR(11) // Timer1 Compare Match A

Generating Large Delays Using loop Prescaler Bigger counters

The Difference Between Timer 0 and Timer 2 CS02 CS01 CS00 Comment 0 0 0 Timer/Counter stopped 0 0 1 clk (No Prescaling) 0 1 0 clk / 8 0 1 1 clk / 64 1 0 0 clk / 256 1 0 1 clk / 1024 1 1 0 External clock on T0 (falling edge) 1 1 1 External clock on T0 (rising edge) CS22 CS21 CS20 Comment 0 0 0 Timer/Counter stopped 0 0 1 clk (No Prescaling) 0 1 0 clk / 8 0 1 1 clk / 32 1 0 0 clk / 64 1 0 1 clk / 128 1 1 0 clk / 256 1 1 1 clk / 1024

Atmel AVR ATMega328P Mikrodenetleyicisinin Pinout Diyagramı