Professional Documents
Culture Documents
Micro Lab 04
Micro Lab 04
✓ تایمر و کانتر
1
Timer/Counter
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
5
Timer/Counter
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