Selasa, 12 Mei 2015

MODE TIMER PADA MIKROKONTROLER AVR ATMEGA 16



MODE TIMER PADA MIKROKONTROLER AVR ATMEGA 16



PENDAHULUAN

1.1  Latar Belakang
AVR seri mikrokontroler Complementary Metal Oxide Semiconductor (CMOS) 8-bit buatan Atmel berbasis arsitektur RISC (Reduced Instruction Set Computer). Hampir semua program dieksekusi dalam satu siklus clock. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan mode compare, interrupt internal dan eksternal, serial UART, programmable Watchdog Timer, power saving mode, ADC dan PWM (Pulse Width Modulation). AVR pun In-System Programmable (ISP) Flash on-clip yang mengijinkan memori program untuk diprogram ulang (read/write) dengan koneksi secara serial yang disebut Serial Peripheral Interface (SPI).
Dari semua fasilitas yang diberikan pada mikokontroler AVR ATmega 16, timer merupakan salah satu sarana input yang kurang dapat perhatian pengguna mikrokontroler, dengan sarana input ini mikrokontroler dengan mudah bisa dipakai untuk mengukur lebar pulsa, membangkitkan pulsa dengan lebar yang pasti, dipakai dalam pengendalian tegangan secara PWM (Pulse Width Modulation) dan lain sebagainya. Mengingat banyaknya kegunaan dari timer pada mikrokontroler maka pada makalah ini akan dibahas mengenai Timer.

1.2  Tujuan
Untuk mengetahui mode pada Timer/Counter
Untuk mengetahui register pada mode Timer/Counter

1.3  Rumusan Masalah
1.      Apa saja mode-mode yang digunakan pada Timer/Counter?
2.      Apa saja register-register pada masing-masing mode Timer/Counter?


PEMBAHASAN

Timer adalah salah satu fitur yang terdapat pada mikrokontroler yang mempunyai fungsi sebagai pencacah nilai berdasarkan nilai frekuensi yang digunakan. Timer dapat bekerja secara paralel walaupun mikrokontroler sedang mengeksekusi suatu perintah. Pada saat timer selesai berhitung, interrupt akan diaktifkan agar mikrokontroler tahu dan beranjak untuk mengeksekusi perintah terkait timer tersebut. Mikrokontroler AVR ATmega 16 memiliki tiga buah Timer/Counter, yaitu Timer 0, Timer 1, dan Timer 2.

2.1  Mode pada Timer
Dalam menggunakan timer, ada beberapa istilah mode yang harus diketahui pada saat akan melakukan pemograman, yaitu

·         Mode Normal
Pada mode ini timer akan menghitung dari nilai terendah hingga nilai maksimal dan interrupt overflow akan diaktifkan saat hitungan reset ke nilai terendah karena telah melebihi nilai maksimal. 

·         Mode CTC (Clear Timer on Compare Match)
Pada mode ini, nilai maksimal dari timer dapat diatur dengan nilai tertentu dan pada saat menyentuh nilai maksimal tersebut, timer akan kembali ke nilai terendah. Misalnya dalam timer 8-bit, normalnya nilai maksimalnya adalah 255, namun pada mode ini nilainya dapat diatur menjadi 200, 100 atau sesuai kebutuhan.

·         Mode Fast PWM
Pada dasarnya mode ini bekerja mirip mode normal, namun pada mode ini ketambahan fitur output compare sehingga dapat menghasilkan pulse width modulation. Misalkan, nilai OCR diatur 200, pada pin OC0A akan bernilai 1 saat timer menghitung dari nilai terendah hingga kurang dari OCR, sebaliknya pada pin OC0A akan bernilai 0 saat OCR lebih kecil atau sama dengan OCR.

·         Mode Phase Correct PWM
Pada dasarnya mode ini sama dengan Fast PWM, namun bedanya setelah mencapai nilai maksimal, dia akan menghitung mundur hingga ke nilai terndah. Mode ini juga menyediakan fitur ouput compare untuk menghasilkan PWM.


2.1  Register Timer
1.      Timer 0
Timer 0 merupakan timer berjenis 8-bit dengan jumlah cacahannya maksimal sebesar 256 kali. Pengaturan timer 0 diatur oleh TCCR0 (Timer Counter Control Register 0).

Register TCCR0
TCCR0 (Timer Counter Control Register 0) adalah register yang berisi bit-bit untuk mengaktifkan timer serta mengatur mode-mode yang akan dijalankan oleh timer 0. Berikut register TCCR0.


Pada bit 0-2 (CS00, CS01, CS02) digunakan untuk mengaktifkan timer dan mengatur frekuensi timer yang digunakan, dimana ketiga bit tersebut memilih sumber clock yang akan digunakan oleh timer. Berikut tabel penjelasannya.


Pada bit ke 3 dan ke 6 (WGM01 dan WGM00) (WGM = Wave Generation Mode) digunakan untuk mengatur mode - mode yang akan dijalankan oleh mikrokontroler.



Pada bit ke 4 dan ke 5 (COM00 dan COM01) (COM = Compare Output Mode).
Berikut tabel Compare Output Mode apabila kita menggunakan mode Non PWM.


Tabel Compare Output Mode apabila kita menggunakan mode Fast PWM

 
Tabel Compare Output Mode apabila kita menggunakan mode Phase Correct PWM.



Pada bit ke 7 yaitu FOC0 (Force Output Compare) adalah bit yang akan bernilai 1 ketika bit WGM00 di mode Non PWM, maka apabila bit WGM00 di mode PWM, bit FOC0 akan bernilai 0.

Register TCNT0
Register TCNT0 adalah register yang dimiliki oleh timer0 sebagai pencacah atau counter. Range dari register TCNT0 ini sebesar 8 bit.



Register OCR0
Register Output Compare Register adalah register yang selalu di compare secara terus menerus dengan register TCNT0. Pada saat nilai dari register OCR0 dan TCNT0 sama, dapat kita sebagai interupsi, atau bisa gunakan outputnya menjadi PWM di Pin OC0.




Register TIMSK 
Register TIMSK (Timer/Counter Interrupt Mask Register) adalah register yang berisi bit - bit untuk mengaktifkan interupsi pada setiap timer.  


Bit 0 TOIE0 (Timer/Counter 0 Overflow Interrupt Enable) adalah bit yang apabila kita set 1 digunakan untuk mengaktifkan interupsi overflow timer 0. Overflow adalah suatu keadaan ketika cacahan telah mencapai puncak (0xFF = 255) sesuai dengan range dari timer yang digunakan.
Bit 1 OCIE0 (Timer/Counter 0 Output Compare Interrupt Enable 0) adalah bit yang apabila kita set 1 digunakan untuk mengaktifkan interupsi Compare match atau interupsi ketika nilai TCNT0 sama dengan nilai OCR0.

Register TIFR
Register TIFR adalah register flag dari setiap interupsi yang digunakan. Sebagai contoh apabila kita menggunakan interupsi Overflow, maka ketika cacah telah mencapai nilai puncak (overflow) maka flag TOV0 akan set menjadi 1. Berikut isi dari register TIFR.


1.      Timer 1
Timer/Counter 1 mempunyai keunggulan dibanding Timer/Counter 0 atau 2, namun cara mengatur. Timer 0, 1, 2 sama saja, yaitu pada masing-masing registernya. Timer/Counter 1 dapat menghitung sampai dengan 65536 Timer/Counter. Timer 1 ini memiliki mode operasi sebanyak 16 mode. Register pada Timer ini dibagi menjadi beberapa register dengan fungsi khusus, yaitu: control register A, control register B dan interrupt mask. Register – register pada Timer/Counter 1 yang berfungsi untuk mengatur timer dan mode operasinya.

Register TCCR1A  



Keterangan:
Bit 7 dan 6 : Compare Output untuk kanal A
Bit 5 dan 4 : Compare Output untuk kanal B
Bit COM1 ini mempunyai Compare Output Mode pada setiap mode operasinya. Mode tersebut mempengaruhi pin I/O OC1 A dan B.
Compare Output Mode, Non-PWM



Compare Output Mode, Fast PWM



Compare Output Mode
Phase Correct dan Phase Correct & Frequency PWM
 
Bit 3 : Force Output untuk kanal A
Bit 2 : Force Output untuk kanal B
Bit 1 dan 0 : Waveform Generation Mode
Mode operasi sebanyak 16 mode, diatur dalam bit WGM ini. Mode operasi tersebut ditunjukkan seperti tabel dibawah.

Register TCCR1B

 



Keterangan:
Bit 7 : Input Capture Noise Canceler, ketika bit ini diset 1(high) maka
Noise Canceler aktif dan masukkan dari Input Capture Pin (ICP1) terfilter.
Bit 6 : Input Capture Edge Select, bit ini digunakan untuk trigger yang disebabkan oleh edge ICP1. Jika bit ini diset 1 maka sebuah rising edge (positif) akan men-trigger capture, Jika bit ini diset 0 maka sebuah falling edge (negatif) akan men-trigger capture.
Bit 5 : Reserved, bit ini akan digunakan pada tahap pengembangan selanjutnya.
Bit 4 dan 3 : lihat deskripsi register TCCR1A.
Bit 2, 1 dan 0 : Clock Select, bit ini digunakan untuk memilih jenis sumber clock
untuk digunakan pada suatu timer/counter.
Deskripsi Clock Select Bit


Register TCNT1
TCNT1, digunakan untuk menyimpan nilai timer yang diinginkan. TCNT1 dibagi menjadi 2 register 8 bit, yaitu TCNT1H dan TCNT1L.
Register TCNT1
 

Register TIMSK dan TIFR
TIMSK dan TIFR, Timer Interrupt Mask Register (TIMSK) dan Timer Interrupt Flag (TIFR) digunakan untuk mengendalikan interrupt mana yang diaktifkan, dengan cara melakukan setting pada TIMSK dan untuk mengetahui interrupt mana yang sedang terjadi.

Register TIMSK

Keterangan:
Bit 7 : Timer/Counter2 Output Compare Match Interrupt Enable
Bit 6 : Timer/Counter2 Overflow Interrupt Enable
Bit 5 : Timer1 Input Capture Interrupt Enable
Bit 4 : Timer/CounterA Output Compare Match Interrupt Enable
Bit 3 : Timer/CounterB Output Compare Match Interrupt Enable
Bit 2 : Timer/Counter1 Overflow Interrupt Enable
Bit 1 : Timer/Counter0 Output Compare Match Interrupt Enable
Bit 0 : Timer/Counter0 Overflow Interrupt Enable
Register TIFR

Keterangan:
Bit 7 : Output Compare Flag2
Bit 6 : Timer/Counter2 Overflow Flag
Bit 5 : Timer1 Input Capture Interrupt Flag
Bit 4 : Output Compare Flag1A
Bit 3 : Output Compare Flag1B
Bit 2 : Timer/Counter1 Overflow Flag
Bit 1 : Output Compare Flag0
Bit 0 : Timer/Counter0 Overflow Flag

Register OCR1n
OCR1n, Output Compare Register Timer 1 n (n = A, B) merupakan register yang digunakan untuk membangkitkan interupsi eksternal dengan melakukan perbandingan (Output Compare) atau juga dapat digunakan untuk membangkitkan bentuk gelombang (PWM). Fungsi tersebut di atas dikeluarkan oleh pin OC1n (n = A, B).
Register OCR1n

1 komentar:

  1. Bet365 Casino Review 2021 - Up to €200 Bonus in Free Bets
    Find out what's at Bet365 casino 가입시 꽁 머니 환전 and 포커 게임 하기 how they're doing! All you need to know about this 토토 사이트 great sportsbook 바인드 토토 and casino in India. Rating: 4.2 · ‎Review by CasinoSites.One of the leading gambling sites in the world, 예스 벳 Bet365 is known for its huge selection of games.

    BalasHapus