Timer Counter 1 Lecturer: Reza Arjmandi Autumn 2015 Lecture 14, 15: Introduction Timer/Counter1 Registers, initialization.

Slides:



Advertisements
Similar presentations
Switching Mode Power Supply Design based on L6565 Master : Mr.Ghaderi Researcher : Dariush Moridi SMPS
Advertisements

Awe sim.
More fun with Timer/Counters
Design based on L6565 استاد راهنما : مهندس محمد اكبري فرمانبر Researcher : mohammad chari بسم الله الرحمن الرحيم.
معاونت درمان امور مامایی اردیبهشت 90. برای ثبت اطلاعات در برنامه نرم افزاری نظام مراقبت مرگ پریناتال ابتدا لازم است برنامه نرم افزار info-path وپرنیان.
Decision Tree.
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.
Pulse Width Modulation modes
فایل پردازی در C File based Programming in C. انواع فایل متنی –سرعت بالا –حجم کمتر –امکان دسترسی تصادفی –حفظ امنیت داده ها دودویی (باینری) –امکان باز.
The Use of Microcontrollers
ARM Session , Spring Copyright © 2012 Mohammad Moallemi.
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.
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
1 Network Address Translation (NAT). 2 Private Network شبکه خصوصی شبکه ای است که بطور مستقیم به اینترنت متصل نیست در یک شبکه خصوصی آدرس های IP به دلخواه.
A Few Words From Dilbert
Advanced uC Session Speaker : Chiraag Juvekar Jan 13, 2011 Speaker : Chiraag Juvekar Jan 13, 2011.
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.
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.
فصل 4 پرتهای ورودی و خروجی. برای هر پورت سه ثبات 8 بیتی در منطقه رجیسترهای I/O وجود دارد که بعنوان مثال برای پورت A این ثبات ها عبارتند از:
Timers and Scheduled Interrupts
Stepper Motor Configuration
Alphanumeric LCD Configuration
PORT(I/O) Configuration
Seven Segment Configuration Lecturer: Reza Arjmandi Autumn 2015 Lecture 5: Introduction 7Segment Configuration.
Interrupt Control Unit Lecturer: Reza Arjmandi Autumn 2015 Lecture 10, 11: Introduction Interrupt Concept, interrupt control unit and External Interrupt.
#1 of 10 Tutorial Introduction PURPOSE -To explain how to configure and use the Timer Interface Module in common applications OBJECTIVES: -Identify the.
Lecturer: Reza Arjmandi Autumn 2015
تایمر در میکروکنترلرهای AVR. تایمرها در میکروکنترلرهای AVR تایمر در حقیقت یک شمارنده است که پالس ورودی را می شمارد. در صورتی که پالس ورودی کنتور از پالس.
Analog to Digital Converter(ADC) Lecturer: Reza Arjmandi Autumn 2015 Lecture 18: Introduction ADC Unit and initialization.
پیاده سازی کنترلر PC/104. Contents PC/104 پیاده سازی کنترلر HILتست 1.
16-Bit Timer/Counter 1 and 3
Timers and Scheduled Interrupts
Outline Introduction to Arduino UNO Programming environment setup GPIO
V.V.P. ENGINEERING COLLEGE,RAJKOT
BITS EDU. CAMPUS , VARNAMA
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.
Session 7,8.
[c.
Timer/Counter Modified from Dr. Lam Phung’s Slides.
16-bit Timer/Counter1 Features
8-bit Timer/Counter0 with PWM
Session 6.
تمرین هفتم بسم الله الرحمن الرحیم درس یادگیری ماشین محمدعلی کیوان راد
هیدروگراف(Hydrograph) تهیه : دکتر محمد مهدی احمدی
بنام خدا زبان برنامه نویسی C (21814( Lecture 12 Selected Topics
SY800 router mode [AD-14-TB ].
آشنایی مقدماتی با نرم افزار Endnote X4
پيکره بندی تايمر / کانترها
بررسی قطبش در لیزر های کاواک عمودی گسیل سطحی(vcsel)
SSO Single Sign-on Systems
مدار منطقی Logic Circuits
مدارهای منطقی فصل سوم - خصوصیات توابع سويیچی
DC motor and PWM.
8-bit Timer/Counter2 with PWM and Asynchronous Operation
دینامیک سیستمهای قدرت مدرس: دکتر مهدی بانژاد
Bucket sort اكرم منوچهري زهرا منوچهري
Ali Karimpour Associate Professor Ferdowsi University of Mashhad
وبلاگ جامع مهندسی برق و الکترونیک
آشنایی مقدماتی با نرم افزار Endnote X4
بسم الله الرحمن الرحیم هرس درخت تصمیم Dr.vahidipour Zahra bayat
آشنایی مقدماتی با نرم افزار Endnote
فصل ششم مدارهای ترتیبی.
به نام یکتای دانا فصل اول: متدها و قواعد.
Wave Generation and Input Capturing
Timer/Counter Timer/Counter 0 Timer/Counter 1 Timer/Counter 2 8 bit
Presentation transcript:

Timer Counter 1 Lecturer: Reza Arjmandi Autumn 2015 Lecture 14, 15: Introduction Timer/Counter1 Registers, initialization

AVR Microcontroller-General Structure AVR CPU BUS Flash Memory SRAM EEPROM Timer/ Counter Timer/ Counter USART TWI ADC MCU Control and Timing I/O Ports Interface I/O Ports Interface Watchdog Timer SPI ISP Interrupt Unit PORTDPORTCPORTBPORTA Internal Calibrated Oscillator Crystal Oscillator ATMEGA32 Block Diagram: DataSheet Page4

Timer/Counter1 Accuracy: 16 Bit Modes:1-Normal2-CTC (2 Mode) 3-FastPWM (5Modes)4-Phase correct PWM (5 Modes) 5-Phase & Frequency Correct PWM (2 Modes) Pins: T1: پایه ورودی برای اتصال منبع کلاک خارجی OC1A & OC1B: پایه خروجی برای تولید شکل موج ICP1: Input Capture Pin Prescalar N: 1, 8, 64, 256, 1024 TCNT1 رجیستر شمارش : OCR1A رجیستر مقایسه : OCR1B رجیستر مقایسه : نکته ! برای تولید شکل موج خروجی باید پین های مربوط به آن به صورت خروجی پیکره بندی شود Timer/ Counter1 Timer/ Counter1

Timer/Counter1-Modes-Normal Bottom Max(=0xFFFF) TOP(=Max) OC1A OCR1A Max=65535 TOP=Max Bottom= Change By TCNT1 OCR1x Update= Immediate Compare Match Interrupt A  OCF1A=1; OverFlow Interrupt  TOV1=1; Duty Cycle=50% Normal Mode Formula: F OC =F system /(2*N*(65536-Bottom)) F timer =F system /N T timer =1/F timer T overflow =(65536-Bottom)*T timer Normal Mode Formula: F OC =F system /(2*N*(65536-Bottom)) F timer =F system /N T timer =1/F timer T overflow =(65536-Bottom)*T timer OCR1B Compare Match Interrupt B  OCF1B=1; OC1B از این مد معمولا برای تولید شکل موج استفاده نمیشود و بیشتر به عـنـوان Counter و نـیز Input Capture مورد استفاده قرار میگیرد

Timer/Counter1-Modes-CTC CTC: Clear Timer on Compare Match Bottom Max(=0xFFFF) OC1A Max=65535 TOP=Change By OCR1A or ICR1(2 Modes) Bottom= Change By TCNT1 OCR1x Update= Immediate OCR1A یا ICR1 Compare And Overflow interrupt  TOV1=1,OCF1A=1 or ICF1=1 Duty Cycle=50% CTC Mode Formula: F OCx =F system /2*N*(1+TOP) F timer =F system /N T timer =1/F timer T overflow =(65536-Bottom)*T timer OCR1A-B or ICR1= مقدار تاخیر دلخواه / دوره تناوب CTC Mode Formula: F OCx =F system /2*N*(1+TOP) F timer =F system /N T timer =1/F timer T overflow =(65536-Bottom)*T timer OCR1A-B or ICR1= مقدار تاخیر دلخواه / دوره تناوب مدکاری CTC معمولا برای ایجاد زمان های تاخیر دلخواه ونیز برای تولید شکل موج هایی با فرکانس های متفاوت استفاده میشود OCR1A یا ICR1 OCR1B OC1B Compare interrupt  OCF1B=1

Timer/Counter1-Modes-Fast PWM PWM: Pulse Width Modulation Duty Cycle= قابل تغییر Max=65535 TOP=5 Modes Bottom= Change By TCNT1 OCR1x Update= TOP Bottom Max(=0xFFFF) OC1A-B Non-Inverted Inverted Fast PWM Mode Formula: F PWM =F system /N*(1+TOP) F timer =F system /N T timer =1/F timer T overflow =(65536-Bottom)*T timer OCR1A-B = %dutyCycle * TOP Fast PWM Mode Formula: F PWM =F system /N*(1+TOP) F timer =F system /N T timer =1/F timer T overflow =(65536-Bottom)*T timer OCR1A-B = %dutyCycle * TOP از این مد بیشتر برای تولید شکل موج در خروجی استفاده میشود OverFlow Interrupt  TOV1=1; Compare Match Interrupt  OCF1A-B=1; OCR1A-B TOP = 5 حالت ModesTOP FastPWM-8Bit 0xFF FastPWM-9Bit 0x1FF FastPWM-10Bit 0x3FF FastPWM ICR1 FastPWM OCR1A

Timer/Counter1-Modes-Phase Correct PWM Bottom Max(=0xFFFF) TOP=5 حالت Duty Cycle= قابل تغییر Max=65535 TOP=5 Modes Bottom= Change By TCNT1 OCR1x Update= TOP OverFlow Interrupt  TOV1=1; Compare Match Interrupt  OCF1A-B=1; Phase Correct PWM Mode Formula: F PWM =F system /2*N*TOP F timer =F system /N T timer =1/F timer T overflow =(256-Bottom)*T timer OCR1A-B=%dutyCycle * TOP Phase Correct PWM Mode Formula: F PWM =F system /2*N*TOP F timer =F system /N T timer =1/F timer T overflow =(256-Bottom)*T timer OCR1A-B=%dutyCycle * TOP OCR1A-B OC1A-B Non-Inverted Inverted ModesTOP PWM-8Bit 0xFF PWM-9Bit 0x1FF PWM-10Bit 0x3FF PWM ICR1 PWM OCR1A

Timer/Counter1-Modes-Phase & Frequency Correct PWM Bottom Max(=0xFFFF) TOP=2 حالت Duty Cycle= قابل تغییر OverFlow Interrupt  TOV1=1; Compare Match Interrupt  OCF1A-B=1; OCR1A-B OC1A-B Non-Inverted Inverted ModesTOP PWM ICR1 PWM OCR1A Phase & Frequency Correct PWM Mode Formula: F PWM =F system /2*N*TOP F timer =F system /N T timer =1/F timer T overflow =(256-Bottom)*T timer OCR1A-B=%dutyCycle * TOP Phase & Frequency Correct PWM Mode Formula: F PWM =F system /2*N*TOP F timer =F system /N T timer =1/F timer T overflow =(256-Bottom)*T timer OCR1A-B=%dutyCycle * TOP Max=65535 TOP=2 Modes Bottom= Change By TCNT1 OCR1x Update= Bottom

Timer/Counter1-Input Capture فرمان Capture: صدور فرمان Capture باعث کپی شدن محتوای رجیستر TCNT1 در رجیستر ICR1 میشود. امکان فعال سازی یک وقفه داخلی نیز وجود دارد فرمان Capture از طریق پایه ICP1 و یا خروجی مقایسه کننده ‌ ی آنالوگ (Analog Comparator) صادر شود. ( به طور پیش فرض دریافت فرمان Capture به عهده ‌ ی ICP1 است ) واحد Input Capture به منظور « تشخیص زمان وقوع یک رخداد خارجی » به کار برده میشود. تشخیص زمان وقوع یک رخداد میتواند برای محاسبه ‌ ی فرکانس، duty cycle و... به کار رود معمولا از این واحد در مد نرمال به راحتی استفاده میشود حس شدن فرمان Capture توسط پایه ICP1 مستلزم آن است که این پایه به صورت ورودی تعریف شود اندازه گیری زمان بین دو رخداد بوسیله واحد Input Capture ( فرمول ها برای مد نرمال ) : اگر TimeOld>TimeNew : T total = (n * 65535) + (TimeNew – TimeOld) اگر TimeOld<TimeNew : T total = ((n – 1) * 65535) + (TimeNew – TimeOld)

Timer/Counter1-Input Capture-Noise Canceler واحد Input Capture از یک امکان سخت افزاری برای حذف نویز بهره میبرد که Noise Canceler نام دارد. در صورت فعال بودن این سخت افزار از سیگنال اعمال شده به پایه ICP1 چهار نمونه ‌ ی یکسان گرفته شده و در صورت برابری آن ها فرمان Capture صادر میشود. بنابراین سیگنال ورودی روی پایه ICP1 باید برای چهار پالس سیستم معتبر باشد

Timer/Counter1-Interrupt 1- Overflow Interrupt بیت Flag: TOV1 بیت فعال ساز اختصاصی : TOIE1 بردار وقفه در IAR: TIMER1_OVF_vect 2- Compare Match Interrupt A بیت Flag: OCF1A بیت فعال ساز اختصاصی : OCIE1A بردار وقفه در IAR: TIMER1_COMPA_vect 3- Compare Match Interrupt B بیت Flag: OCF1B بیت فعال ساز اختصاصی : OCIE1B بردار وقفه در IAR: TIMER1_COMPB_vect 4- Capture Interrupt بیت Flag: ICF1 بیت فعال ساز اختصاصی : TICIE بردار وقفه در IAR: TIMER1_CAPT_vect

Timer/Counter1-Register 1- TCCR1A 2- TCCR1B 3- TCNT1 4- OCR1A 5- OCR1B 6- ICR1 7-TIMSK 8-TIFR 9-SFIOR for Timer/Counter1 for All Timer/Counters

Timer/Counter1-Register-TCCR1A & TCCR1B TCCR: Timer/Counter Control Register توسط این رجیستر تنظیمات مربوط به انتخاب مدکاری، انتخاب منبع پالس، پیکره بندی پایه ‌ های خروجی و تنظیمات واحد Input Capture انجام میشود.

Timer/Counter1-Register-TCCR1A & TCCR1B بیت های انتخاب منبع پالس (CS12~10): CS: Clock Select

Timer/Counter1-Register-TCCR1A & TCCR1B بیت های انتخاب مد کاری (WGM13~10): WGM: Waveform Generation Mode

Timer/Counter1-Register-TCCR1A & TCCR1B بیت های تعیین وضعیت پایه های OC1A و OC1B(COM1xx) COM: Compare Output Mode

بیت تغییر اجباری پایه خروجی OC1A و OC1B : FOC: Force Output Compare match Timer/Counter1-Register-TCCR1A & TCCR1B این بیت فقط زمانی set میشود که یک حالت non-PWM (Normal-CTC) را انتخاب کرده باشید. در هنگام set کردن این بیت (FOC1A) ، یک تغییر وضعیت روی پایه OC1A ایجاد میشود در زمان Set شدن این بیت Flag مقایسه خروجی OCF1A ست نمیشود و وقفه ‌ ای بوجود نخواهد آمد این بیت در کل هیچ تاثیری بر هیچ رجیستر و Flag ی ندارد و فقط وضعیت پایه OC0 را با توجه به تنظیمات آن تغییر میدهد در زمان set کردن بیت FOC1B نیز حالت مشابهی برای پایه OC1B رخ میدهد.

Timer/Counter1-Register-TCCR1A & TCCR1B بیت های مربوط به واحد Input Capture: بیت فعال ساز برای حذف نویز (Noise Canceler) در واحد Input Capture: ICNC: Input Capture Noise Canceler بیت انتخاب نوع تریگر روی پایه ورودی ICP1: ICES: Input Capture Edge Select در صورت Set شدن این بیت تریگر پایه ICP1 بصورت پالس با لبه ‌ ی بالارونده (rising edge) انجام میشود و در صورت Clear شدن این بیت تریگر پایه ICP1 بصورت پالس با لبه ‌ ی پایین رونده (falling edge) انجام می ‌ پذیرد.

Timer/Counter1-Register-TIMSK & TIFR TIMSK: Timer/Counter Interrupt Mask Register TIFR: Timer/Counter Interrupt Flag Register Timer/Couner1 Interrupts: 1- Overflow Interrupt بیت Flag: TOV1 بیت فعال ساز اختصاصی : TOIE1 بردار وقفه در IAR: TIMER1_OVF_vect 2- Compare Match Interrupt A بیت Flag: OCF1A بیت فعال ساز اختصاصی : OCIE1A بردار وقفه در IAR: TIMER1_COMPA_vect 3- Compare Match Interrupt B بیت Flag: OCF1B بیت فعال ساز اختصاصی : OCIE1B بردار وقفه در IAR: TIMER1_COMPB_vect 4- Capture Interrupt بیت Flag: ICF1 بیت فعال ساز اختصاصی : TICIE بردار وقفه در IAR: TIMER1_CAPT_vect void main(void) { TCCR1B|=(1<<CS11); TIMSK|=(1<<TOIE1); //overflow interrupt enable; asm(“sei”); while(1) … } #pragma vector=TIMER1_OVF_vect __interrupt void function(void) {code for overflow}

Timer/Counter1-Register-SFIOR SFIOR: Special Function I/O Register PSR10: Prescaler for timer/counter 0 and 1 هنگامی که مقدار بیت صفر از این رجیستر برابر 1 است واحد prescaler مربوط به تقسیم پالس برای تایمر / کانتر صفر و یک درحال ریست میباشد این بیت بصورت خودکار تغییر میکند و نمیتوان در آن تغییری ایجاد کرد

Timer/Counter1-Example1 با استفاده از مد CTC ، دو موج مربعی با فرکانس 1KHz و اختلاف زمانی 400us بر روی پایه های OC1A و OC1B ایجاد نمایید ( کلاک سیستم 8MHz است و N=8 انتخاب شود ( #include void main(void) { DDRD|=(1<<PD4)|(1<<PD5);//Output OC1A and OC1B OCR1A=499;//set for 1000 count OCR1B=99;//to 100 us delay TCCR1A=((1<<COM1A0)|(1<<COM1B0));//CTC top=OCR1A TCCR1B=((1<<WGM12)|(1<<CS11));//prescale: 8 //OC1A output: toggle //OC1B output: toggle } 1KHz = 8MHz / 2 * 8 * (1 + TOP)  TOP = OCR1A = 499 Ftimer = 8MHz / 8 Ttimer = 1 / 1MHz = 1us  OCR1B = 99 CTC Mode Formula: F OCx =F system /2*N*(1+TOP) F timer =F system /N T timer =1/F timer T overflow =(65536-Bottom)*T timer OCR1A-B or ICR1= مقدار تاخیر دلخواه / دوره تناوب CTC Mode Formula: F OCx =F system /2*N*(1+TOP) F timer =F system /N T timer =1/F timer T overflow =(65536-Bottom)*T timer OCR1A-B or ICR1= مقدار تاخیر دلخواه / دوره تناوب

Timer/Counter1-Example2 :Wave Generator تولید موج سینوسی، شرایط مسئله به صورت زیر میباشد : Mode: FastPWM 8-bit Fsystem= 8MHz TOP=0xFF OC1A: Set at TOP, clear on compare #include __flash char sinewave[]={ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x03,0x03,0x04,0x05,0x06,0x07,0x08, 0x09,0x0a,0x0c,0x0d,0x0f,0x10,0x12,0x13,0x15,0x17,0x19,0x1b,0x1d,0x1f,0x21,0x23, 0x25,0x27,0x2a,0x2c,0x2e,0x31,0x33,0x36,0x38,0x3b,0x3e,0x40,0x43,0x46,0x49,0x4c, 0x4f,0x51,0x54,0x57,0x5a,0x5d,0x60,0x63,0x67,0x6a,0x6d,0x70,0x73,0x76,0x79,0x7c, 0x80,0x83,0x86,0x89,0x8c,0x8f,0x92,0x95,0x98,0x9c,0x9f,0xa2,0xa5,0xa8,0xab,0xae, 0xb0,0xb3,0xb6,0xb9,0xbc,0xbf,0xc1,0xc4,0xc7,0xc9,0xcc,0xce,0xd1,0xd3,0xd5,0xd8, 0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xef,0xf0,0xf2,0xf3,0xf5, 0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff, 0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf7, 0xf6,0xf5,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xea,0xe8,0xe6,0xe4,0xe2,0xe0,0xde,0xdc, 0xda,0xd8,0xd5,0xd3,0xd1,0xce,0xcc,0xc9,0xc7,0xc4,0xc1,0xbf,0xbc,0xb9,0xb6,0xb3, 0xb0,0xae,0xab,0xa8,0xa5,0xa2,0x9f,0x9c,0x98,0x95,0x92,0x8f,0x8c,0x89,0x86,0x83, 0x80,0x7c,0x79,0x76,0x73,0x70,0x6d,0x6a,0x67,0x63,0x60,0x5d,0x5a,0x57,0x54,0x51, 0x4f,0x4c,0x49,0x46,0x43,0x40,0x3e,0x3b,0x38,0x36,0x33,0x31,0x2e,0x2c,0x2a,0x27, 0x25,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x17,0x15,0x13,0x12,0x10,0x0f,0x0d,0x0c,0x0a, 0x09,0x08,0x07,0x06,0x05,0x04,0x03,0x03,0x02,0x01,0x01,0x01,0x01,0x01,0x01,0x01 }; char i=0; void main(void) { DDRD=0xFF; TCCR1A=(1<<COM1A1)|(1<<WGM10); TCCR1B=(1<<WGM12)|(1<<CS10); TIMSK=(1<<OCIE1A); asm("sei"); while (1); } #pragma vector=TIMER1_COMPA_vect __interrupt void tmp(void) { OCR1A=sinewave[i]; i++; if(i==255)i=0; }

Timer/Counter1-Example3 :Wave Analyzer با استفاده از واحد Input capture تایمر / کانتر یک سیستمی طراحی کنید که امکان اندازه گیری دوره تناوب و عرض پالس موج های مربعی را اندازه گرفته و روی LCD نمایش دهد

Timer/Counter1-Example3 #include #include "LCDCHR_lib.c" #include #define ICP1 PIND_Bit6 int start_time,stop_time,period,pulse_width; void main(void) { LCDinit(); PORTD|=(1<<PD6); TCCR1B|=(1<<CS11)|(1<<ICES1); TIMSK|=(1<<TICIE1); asm("sei"); while(1) { LCDclr(); LCDGotoXY(0,0); LCDstring("Period: "); LCD_intnum(period); LCDGotoXY(0,1); LCDstring("PW: "); LCD_intnum(pulse_width); __delay_cycles( ); } #pragma vector=TIMER1_CAPT_vect __interrupt void isr(void) { TCCR1B^=(1<<ICES1); if(ICP1==1) { period=ICR1 - start_time; pulse_width = stop_time - start_time; start_time=ICR1; } else stop_time=ICR1; }

Timer/Counter-PWM Application انتقال اطلاعات الکترونیک قدرت منابع تغذیه سوییچینگ کنترل دور موتور کنترل شدت نور کاربرد های صوتی

Timer/Counter-PWM Application-DC Motor With BrushBrushless

Timer/Counter-PWM Application-DC Motor کنترل دور موتور DC:

Timer/Counter-PWM Application-DC Motor کنترل دور موتور DC: #include unsigned char __flash SEG[]={0xC0,0xF9,0xA4, 0xB0,0x99,0x92,0x83,0xF8,0x80,0x90}; unsigned long int i,j,k; main() { DDRA=0xFF; PORTA=SEG[0]; DDRD|=(1<<PD5)|(1<<PD0); PORTD|=(1<<PD2); TCCR1A|=(1<<WGM10)|(1<<WGM11)|(1<<COM1A1);//Phase Correct PWM 10 bit TCCR1B|=(1<<CS10)|(1<<CS11); OCR1A=1; asm("sei"); while(1) { if(PIND_Bit2==0) { while(PIND_Bit2==0); if(i==9) { i=0; PORTA=SEG[0]; } else { i+=1; PORTA=SEG[i]; OCR1A=i*113+5; } }

Timer/Counter-PWM Application-Servo Motor کنترل موتور سروو : #include main() { DDRD|=(1<<PD5); TCCR1A|=(1<<COM1A1); //PWM, Phase & Freq Correct with ICR1 TOP TCCR1B|=(1<<WGM13)|(1<<CS11); ICR1=20000; while(1) { for(OCR1A=1000;OCR1A<2000;OCR1A++) __delay_cycles(20000); for(OCR1A=2000;OCR1A>1000;OCR1A--) __delay_cycles(20000); }

Contact us