Farikh_ notes


Timer / Counter

Posted in mikrokontroller oleh farikhardiansyah pada April 9, 2013
Tags:

Dalam posting saya yang lalu saya telah menjelaskan bagaimana cara membuat program counter up dan counter down menggunakan mikrokontroller dengan display 2 digit seven segment common anoda. Untuk melihat programnya dapat di klik disini.

Dalam postingan kali ini berbeda dengan postingan yang lalu….kali ini saya tidak membahas tentang counter up/ counter down melainkan akan membahas tentang timer / counter yang terdapat pada mikrokontroller. Timer/Counter merupakan fitur di setiap mikrokontroler yang sangat banyak peranannya dalam perancangan sebuah sistem. Dengan sebuah timer kita bisa menunda suatu eksekusi dari suatu perintah, sehingga sistem mikrokontroler yang berjalan cepat, dapat sinkron dengan operator (manusia). Dengan timer pula kita dapat menghitung lebar pulsa/frekuensi dari suatu sinyal.

jenis-jenis timer :

Pada ATMega8535L terdapat 4 buah fasilitas timer yaitu :
Timer 0                : Adalah timer 8 bit dengan timer value 00 s/d FF
Timer 1                 : Adalah timer 16 bit dengan timer value 0000 s/d FFFF
Timer 2                : Adalah timer 8 bit dengan timer value 00 s/d FF
Watchdog timer : Adalah timer untuk mereset sendiri

Timer pada dasarnya hanya menghitung pulsa clock. Frekuensi pulsa clock yang dihitung tersebut bisa sama dengan frekuensi crystal yang
dipasang atau dapat diperlambat menggunakan prescaler dengan faktor 8, 64, 256 atau 1024. Sedangkan Counter menghitung pulsa pada pin Tn dan tidak bisa diperlambat seperti halnya timer.

Timer 8 bit

TMAX = 1/fCLK x (FF+1)xN
TMAX  : Waktu maksimum timer
fCLK     : Frekuensi clock
N           : Prescaler
Example :
fCLK         = 8MHz
Prescaler  =1024
TMAX       = 1/fCLK x (FF+1) x N
= 0.125uS x 256 x 1024
= 32768uS

Timer 16 bit

TMAX = 1/fCLK x (FFFF+1)xN
TMAX  : Waktu maksimum timer
fCLK     : Frekuensi clock
N           : Prescaler
Example :
fCLK        = 8MHz
Prescaler =1024
TMAX = 1/fCLK x (FFFF+1) x N
= 0.125uS x 65536 x 1024
= 8388608 uS
Timer Value / TCNT

Untuk menentukan berapa timer value yang harus diisikan ke TCNT agar menghasilkan waktu timer yang kita inginkan dapat dihitung dengan persamaan sbb :
Timer 8 bit :
TCNT=(FFFF+1)-((Ttimer x fCLK)/N) Timer 16 bit :
Contoh :
Diinginkan sebuah timer 16 bit bekerja selama 1 detik, dengan frekuensi clock sebesar 8,0000MHz dan presecaller 1024 maka diperoleh nilai TCNT sebesar :
TCNT=(FFFF+1) – ((Ttimer x fCLK)/N)
TCNT=(FFFF+1) – ((1 x 8000000)/1024)
TCNT=10000h – 7812d
TCNT=10000h – 1E84h
TCNT=E17Ch

mungkin cukup dulu posting kali ini….semoga bermanfaat., 🙂

 

Tinggalkan komentar