the avr microcontroller and embedded systems using assembly and c avr microcontroller and embedded...

Download The AVR microcontroller and embedded systems using assembly and c AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi

If you can't read please download the document

Upload: elvin-cummings

Post on 17-Jan-2018

386 views

Category:

Documents


11 download

DESCRIPTION

AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi © 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. 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?

TRANSCRIPT

The AVR microcontroller and embedded systems using assembly and c AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Timers/Counters AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Counter Register AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. A Simple Design (Counting 4 People) First Design (Counter Register has initial value of zero) Sensor Karlatrcsz zm olur mu? AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. A Simple Design (Counting 4 People) Second Design (Counter Register has initial value of 0xFC) Sensor Karlatrcsz zm AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. A Simple Design (Making 4 Clock Cycles Delay) Bu sayc bir sensr yerine periyodik bir saat sinyali ile tetiklendii iin bir zamanlaycya dnmtr. AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. A Generic Timer/Counter Delay generating Counting Wave-form generating AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Timers/Counters in AVR ATMega328PU 3 Timers/Counters Two 8-bit Timers/Counters (0-255) Timer 0 Timer 2 One 16-bit Timer/Counter ( ) Timer 1 AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Timer Registers and Flags TCNTn TCCRn TOVn OCRn = OCFn 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) n 0, 1 veya 2 deerini alr. AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Normal Mode (Timer 0) 0xFF TCNT0 0 TOV time 0 TOV0: 1 FE FF TOV0 = AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Example 1: Write a Program that Waits 14 Machine Cycles in Normal Mode. $100 -$0E $F2 14 = $0E $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 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 AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Finding Values to be Loaded into the Timer 0 1. Calculate the period of clock source. Period = 1 / Frequency E.g. For XTAL = 8 MHz T = 1/8MHz 2. Divide the desired time delay by period of clock. 3. Perform n, where n is the decimal value we got in Step Set TCNT0 = n AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. CTC (Clear Timer on Compare Match) Mode (Timer 0) TCNT0 0 OCF0 time 0 TOV0: xx TOV0 = no change OCF0 = 1 OCR0 0 OCF0: 1 0xFF AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Prescaler The AVR microcontroller and embedded systems using assembly and c AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Timer 1 (A 16-bit Timer) AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Timer 1 TCNT1 (TCNT1H + TCNT1L)TCCR1B TOV1 OCR1A (OCR1AH + OCR1AL) = OCF1A = OCF1B OCR1B (OCR1BH + OCR1BL) TCCR1A AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Timer 1 Registers AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Timer Clock Selector (CS1x) 6 7 AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Timer Mode Selector (WGM1x) AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Wrap Times (Fcpu=16 MHz) TIMER 0 is 8-bit (0255) when prescaler = 1, reaches full count in 16 s when prescaler = 1024, full count in ms TIMER 1 is 16-bit (065536) when prescaler = 1, reaches full count in ms when prescaler = 1024, full count in seconds TIMER 2 is 8-bit (0255) when prescaler = 1, reaches full count in 16 s when prescaler = 1024, full count in ms These wrap times set limits on timed interrupts makes TIMER 1 attractive, for its 16 bits AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. A Complete Timer 1 AVR C Example (V1) (Normal Mode) Yoklama (Polling). Kesmeden Fark? Bayra Silmek in Set Etmek Gerekli?? AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. A Complete Timer 1 AVR C Example (V2) (Normal Mode) AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. A Complete Timer 1 AVR C Example (CTC Mode) AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. 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 AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Generating Large Delays Using loop Prescaler Bigger counters AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. The Difference Between Timer 0 and Timer 2 Timer 0 Timer 2 CS02 CS01 CS00 Comment Timer/Counter stopped clk (No Prescaling) 0 1 0clk / clk / clk / clk / External clock (falling edge) External clock (rising edge) CS22 CS21 CS20 Comment Timer/Counter stopped clk (No Prescaling) 0 1 0clk / clk / clk / clk / clk / clk / 1024 AVR Microcontroller and Embedded System Using Assembly and C Mazidi, Naimi, and Naimi 2011 Pearson Higher Education, Upper Saddle River, NJ All Rights Reserved. Atmel AVR ATMega328P Mikrodenetleyicisinin Pinout Diyagram T0T1