Download as pdf or txt
Download as pdf or txt
You are on page 1of 15

‫آزمایشگاه ریز پردازنده‬

‫✓ تایمر و کانتر‬

‫گروه‪ :‬مهندسی کامپیوتر‬

‫‪1‬‬
Timer/Counter

• Using to generate time delays, waveforms, or


to count events
• Timer0: 8-bit timer
• Timer1: 16-bit timer
• Timer2: 8-bit timer

2
Timer/Counter

• Basic registers:
➢ TCNTn: Timer / Counter Register
➢ TOVn: Timer Overflow Flag
➢ TCCRn: Timer Counter Control Register
➢ OCRn: Output Compare Register

3
Timer/Counter

• Modes of Operation:
➢ Normal
➢ Clear Timer on Compare
Match (CTC)
➢ Pulse Width Modulation
(PWM)

4
‫‪Timer/Counter‬‬

‫‪• Normal Mode:‬‬


‫در این مد‪ ،‬میکروکنترلر از عدد ‪ Load‬شده در رجیستر ‪ TCNTn‬تا‬
‫حد نهایی ظرفیت آن رجیستر میشمارد و سپس بیت پرچم سرریز‬
‫)‪ (TOV0‬از رجیستر پرچم وقفه )‪ (TIFR‬فعال میشود‪.‬‬

‫‪5‬‬
Timer/Counter

timer = CPU Frequency/Prescalar KHz


Generated_delay=(1/timer)*255 ms
timer = CPU Frequency/Prescalar KHz
Generated_delay=(1/timer)*(256-TCNTn) ms

6
Arduino UNO clock register

7
Prescalar

8
Timer/Counter

9
Timer/Counter

10
‫کار در کالس‬
‫ایجاد ‪ delay‬با رجیسترهای میکروکنترلر‬

‫‪11‬‬
‫کار در کالس‬
‫ با رجیسترهای میکروکنترلر‬delay ‫ ایجاد‬-1
bool state=HIGH;
void setup() {
pinMode(A5, OUTPUT);
CLKPR = _BV(CLKPCE); // 0x80
CLKPR = _BV(CLKPS0 | CLKPS1 | CLKPS2); // 0x07 Bit Value
}
void loop() {
digitalWrite(A5,state );
timer0_init();
digitalWrite(A5,!state );
timer0_init();
}
void timer0_init(){
TCCR0B = (1 << CS00)|(0 << CS01) | (0 << CS02);
}

12
‫کار در کالس‬
‫ با رجیسترهای میکروکنترلر‬delay ‫ ایجاد‬-2
void timer0_init(){
TCNT0 = 126;
TCCR0A = (0 << WGM00) | (0 << WGM01);
TCCR0B = (0 << WGM02);

TCCR0B = (1<<CS02) | (0<<CS01) | (0<<CS00); // 2,3,4,5 === 010, 011, 100, 101
while(true){
if(TIFR0 |= (1 == TOV0)){
break;
}}
//clears TOV0 flag
TIFR0 = (1 << TOV0);
}

13
‫تکلیف جلسه بعد‬

‫با استفاده از تایمر صفر برنامه ای بنویسد که اعداد صفر تا ‪ 9‬را به ترتیب بر روی یک سون سگمنت‬
‫نشان دهد‪ .‬با انتخاب چندین حالت فرکانس میکرو و چندین ‪ delay ،Prescalar‬های متفاوت‬
‫ایجاد کنید‪.‬‬

‫‪14‬‬
‫موفق باشید‬

‫‪15‬‬

You might also like