Buku Timer Counter [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

Nama



: Hizkia Glorius Soma



Nim



: D411 13 022



PENGERTIAN TIMER/COUNTER Pada dasarnya, Timer/Counter merupakan seperangkat pencacah (counter) biner yang terhubung langsung ke saluran data mikrokontroler, sehingga mikrokontroler bisa membaca kondisi pencacah dan bila diperlukan mikrokontroler dapat pula merubah kondisi pencacah tersebut. Seperti layaknya pencacah biner, saat sinyal detak (clock) yang diberikan sudah melebihi kapasitas pencacah, maka pencacah akan memberikan sinyal overflow atau limpahan. Sinyal overflow ini merupakan suatu hal yang penting dalam pemakaian Timer/Counter. Terjadinya overflow ini akan dicatat dalam suatu register tertentu.



TIMER ATMEGA AVR ATmega8535 memiliki tiga buah timer, yaitu Timer/Counter0 (8 bit), Timer/Counter1 (16 bit), dan Timer/Counter2 (8 bit).



TIMER/COUNTER0 Timer/Counter0 adalah Timer/Counter 8 bit yang multifungsi. Fitur-fitur dari Timer/Counter0 pada ATmega8535 adalah sebagai berikut. a



Counter 1 kanal.



b



Timer di-nol-kan saat proses pembandingan tercapai (compare match).



c



Sebagai pembangkit gelombang PWM.



d



Sebagai pembangkit frekuensi.



e



Clock prescaler 10 bit.



f



Sumber interupsi dari compare match (OCF0) dan overflow (TOV0). Pengaturan Timer/Counter0 diatur oleh TCCR0 (Timer/Counter Control Register0)



yang dapat dilihat pada Gambar 1.7



Bit 7 FOC0



Bit 6 WGM00



Bit 5 COM01



Bit 4 COM00



5



Bit 3 WGM01



Bit 2 CS02



Bit 1 CS01



Bit 0 CS00



Register TCCR0



Penjelasan untuk tiap bit-bitnya adalah sebagai berikut. a



Bit 7 – FOC0: Force Output Compare



b



Bit 6,3 –WGM01:WGM00: Waveform Generation Unit Bit ini mengontrol kenaikan dari counter, sumber dari nilai maksimum counter, dan tipe dari jenis timer/counter yang dihasilkan, yaitu mode normal, clear timer, mode compare match, dan dua tipe dari PWM (Pulse Width Modulation). Berikut ini tabel pengaturan pada bit WGM01 dan WGM00 untuk menghasilkan mode tertentu.



1



Pengaturan Bit WGM01 dan WGM00 Mode



WGM01 (CTC0)



WGM00 (PWM0)



Mode operasi Timer/Counter



TOP



Update OCR0



0 1



0 0



0 1



Normal PWM, phase



0xFF 0xFF



Immediate TOP



Bendera TOV0 diset saat nilai MAX BOTTOM



2 3



1 1



0 1



correct CTC Fast PWM



OCR0 0xFF



Immediate TOP



MAX MAX



Mode Normal : timer digunakan untuk menghitung saja, membuat delay, menghitung selang waktu. Mode PWM, phase correct : memberikan bentuk gelombang phase correct PWM resolusi tinggi. Mode phase correct PWM berdasarkan operasi dualslope. Counter menghitung berulang-ulang dari bottom ke max dan dari max ke bottom Mode CTC : nilai timer yg ada pada TCNTn akan dinolkan lagi jika TCNTn sdh sama dengan nilai yg ada pada register OCRn, sebelumnya OCR diset dulu, karena timer 0 dan 2 maksimumnya 255 maka range OCR 0 – 255



Mode Fast PWM: memberikan pulsa PWM frekuensi tinggi. Fast PWM berdasarkan operasi single slope. Counter menghitung dari bottom hingga top kemudian kembali lagi menghitung berawal dari bottom.



c



Bit 5, 4 – COM01:COM00: Compare Match Output Mode Bit ini mengontrol pin OC0 (pin Output Compare). Apabila kedua bit ini nol atau clear, maka pin OC0 berfungsi sebagai pin biasa. Bila salah satu bit set, maka fungsi pin ini tergantung pada pengaturan bit pada WGM00 dan WGM01. Berikut daftar tabel pengaturan bit COM01 dan COM00 sesuai pengaturan bit pada WGM00 dan WGM01.



2



Pengaturan Bit COM01 dan COM00 Mode Non-PWM COM01 COM00 0 0 0 1 1 0 1 1



Keterangan Operasi port normal, OC0 tidak dihubungkan. Toggle OC0 saat proses pembandingan tercapai. Clear OC0 saat proses pembandingan tercapai. Set OC0 saat proses pembandingan tercapai.



3



Pengaturan Bit COM01 dan COM00 Mode Fast PWM COM0 1 0 0 1



COM0 0 0 1 0



Keterangan Operasi port normal, OC0 tak dihubungkan. Reserved Clear OC0 saat proses pembandingan tercapai, set OC0



1



1



pada nilai TOP. Set OC0 saat proses pembandingan tercapai, clear OC0 pada nilai TOP.



4



Pengaturan Bit COM01 dan COM00 Mode Phase Correct PWM COM01 0 0



COM00 0 1



Keterangan Operasi port normal, OC0 tak dihubungkan. Reserved Clear OC0 saat proses pembandingan tercapai, yaitu ketika



1



0



hitungan naik. Set OC0 saat proses pembandingan tercapai, yaitu ketika hitungan turun. Set OC0 saat proses pembandingan tercapai, yaitu ketika



1



1



hitungan naik. Clear OC0 saat proses pembandingan tercapai, yaitu ketika hitungan turun.



d



Bit 2, 1, 0 – CS02, CS01, CS00: Clock Select Ketiga bit tersebut untuk memilih sumber clock yang akan digunakan oleh Timer/Counter0.



5



Konfigurasi Bit Clock Select CS02 0 0 0 0 1 1 1 1



CS01 0 0 1 1 0 0 1 1



CS00 0 1 0 1 0 1 0



Keterangan Tanpa sumber clock (timer/counter tidak difungsikan). clkI/O /1 (tanpa prescaling) clkI/O /8 (dari prescaler) clkI/O /64 (dari prescaler) clkI/O /256 (dari prescaler) clkI/O /1024 (dari prescaler) Sumber clock eksternal pada pin T0. Clock pada falling



1



edge. Sumber clock eksternal pada pin T0. Clock pada rising edge.



TIMER/COUNTER1 Timer/Counter1 adalah Timer/Counter 16 bit yang memungkinkan program pewaktuan lebih akurat. Fitur-fitur dari Timer/Counter1 ini adalah sebagai berikut. a



Desain 16 bit, sehingga memungkinkan untuk menghasilkan PWM 16 bit.



b



Dua buah unit pembanding.



c



Dua buah register pembanding.



d



Satu buah input capture unit.



e



Timer di-nol-kan saat proses pembandingan tercapai (match compare).



f



Dapat menghasilkan gelombang PWM.



g



Periode PWM yang dapat diubah-ubah.



h



Sebagai pembangkit frekuensi.



i



Empat buah sumber interupsi (TOV1, OCF1A, OCF1B dan ICF1). Pengaturan Timer/Counter1 diatur oleh TCCR1A (Timer/Counter1 Control Register



A) dan TCCR1B (Timer/Counter1 Control Register B). Bit 7 Bit 6 COM1A1 COM1A0



Bit 5 COM1B 1 6



Bit 4 COM1B0



Bit 3 FOC1A



Bit 2 FOC1B



Bit 1 Bit 0 WGM11 WGM10



Register TCCR1A



Penjelasan untuk tiap bit-bitnya adalah sebagai berikut. a



Bit 7, 6 – COM1A1, COM1A0: Compare Output Mode untuk kanal A



b



Bit 5, 4 – COM1B1, COM1B0: Compare Output Mode untuk kanal B COM1A1, COM1A0, COM1B1, dan COM1B0 mengatur pin pembanding keluaran (Output Compare pins), yaitu pin OC1A dan OC1B. Jika salah satu atau keduanya dari COM1A1 dan COM1A0 diset 1, maka OC1A akan terhubung (aktif) sebagai pin keluaran. Begitu juga jika salah satu atau keduanya dari COM1B1 dan COM1B0 diset 1, maka OC1B akan terhubung (aktif) sebagai pin keluaran.



Sebelum mengaktifkan OC1A dan OC1B, pin-pin yang bersangkutan tersebut harus diatur sebagai keluaran atau DDR (Data Direction Register) dari pin tersebut diset sebagai keluaran.



Pengaturan COM1A1, COM1A0, COM1B1, dan COM1B0 harus



menyesuaikan pengaturan bit WGM13, WGM12, WGM11, dan WGM10 terlebih dahulu. Pengaturan bit-bit tersebut dapat dilihat pada tabel berikut ini. 6



Pengaturan Bit COM1Ax dan COM1Bx Mode Non-PWM COM1A1/ COM1B1/ 0 0 1 1



COM1A0/ COM1B0/ 0 1 0



Keterangan Operasi port normal, OC1A/OC1B tidak dihubungkan. Toggle OC1A/OC1B saat proses pembandingan tercapai. Clear OC1A/OC1B saat proses pembandingan tercapai



1



(set keluaran ke aras rendah). Set OC1A/OC1B saat proses pembandingan tercapai (set keluaran ke aras tinggi).



7



Pengaturan Bit COM1Ax dan COM1Bx Mode Fast PWM COM1A1/ COM1A0/ Keterangan COM1B1/ COM1B0/ 0 0 Operasi port normal, OC1A/OC1B tidak terhubung. WGM13:0=15, toggle OC1A saat proses pembandingan 0



1



tercapai dan OC1B tidak terhubung. Untuk



semua



pengaturan WGM1 yang lain, maka operasi port normal 1 1



0



atau OC1A/OC1B tidak terhubung. Clear OC1A/OC1B saat proses pembandingan tercapai,



1



set OC1A/OC1B pada nilai TOP. Set OC1A/OC1B saat proses pembandingan tercapai, clear OC1A/OC1B pada nilai TOP.



8



Pengaturan Bit COM1Ax dan COM1Bx Mode Phase Correct PWM COM1A1/ COM1B1/ 0



COM1A0/ COM1B0/ 0



0



1



Keterangan Operasi port normal, OC1A/OC1B tak dihubungkan. WGM13:0=9, toggle OC1A saat proses pembandingan tercapai dan OC1B tidak terhubung. Untuk semua pengaturan WGM1 yang lain, maka operasi port normal



atau OC1A/OC1B tidak terhubung. Clear OC1A/OC1B saat proses pembandingan tercapai, 1



0



yaitu ketika hitungan naik. Set OC1A/OC1B saat proses pembandingan tercapai, yaitu ketika hitungan turun. Set OC1A/OC1B saat proses pembandingan tercapai,



1



1



yaitu ketika hitungan naik. Clear OC1A/OC1B saat proses pembandingan tercapai, yaitu ketika hitungan turun.



c



Bit 3, 2 – FOC1A, FOC1B: Force Output Compare untuk kanal A dan B. Bit ini harus diset 0 ketika TCRR1A dioperasikan sebagai fungsi PWM.



d



Bit 1, 0 – WGM11, WGM10: Waveform Generation Mode Bit-bit ini satu kesatuan dengan WGM13, WGM12 yang terdapat pada register TCCR1B. Bit-bit tersebut mengatur urutan penghitungan dari counter, menentukan nilai TOP (nilai maksimal dari pengaturan counter), dan menentukan pilihan tipe pengoperasian Timer/Counter1. Bit 7 ICNC1



Bit 6 ICES1



Bit 5 7



Bit 4 WGM13



Bit 3 Bit 2 WGM12 CS12 A Register TCCR1B



Bit 1 CS11



Bit 0 CS10



Dari register tersebut, bit-bit yang berperan dalam pengaturan PWM adalah bit 4, bit 3, bit 2, bit 1, dan bit 0. a



Bit 2, 1, 0 – CS12, CS11, CS00: Clock Select Ketiga bit tersebut untuk memilih sumber clock yang akan digunakan oleh Timer/Counter1.



9 CS1 2 0 0 0



Konfigurasi Bit Clock Select Register TCCR1B CS11 0 0 1



CS1 0 0 1 0



Keterangan Tanpa sumber clock (timer/counter tidak difungsikan). clkI/O /1 (tanpa prescaling) clkI/O /8 (dari prescaler)



0 1 1 1 1



b



1 0 0 1 1



1 0 1 0 1



clkI/O /64 (dari prescaler) clkI/O /256 (dari prescaler) clkI/O /1024 (dari prescaler) Sumber clock eksternal pada pin T1. Clock pada falling edge. Sumber clock eksternal pada pin T1. Clock pada rising edge.



Bit 4, 3 – WGM13, WGM12: Waveform Generation Mode Bit-bit ini satu kesatuan dengan bit WGM11 dan bit WGM10 yang terdapat pada register TCCR1A. Seperti pada bit WGM11 dan bit WGM10, bit WGM13 dan bit WGM12 berfungsi mengatur urutan penghitungan dari counter, menentukan nilai TOP (nilai maksimal dari pengaturan counter), dan menentukan pilihan tipe pengoperasian Timer/Counter1. Pengaturan bit-bit ini dapat dilihat pada Tabel 2.10.



10



Pengaturan Bit WGM12, WGM11, dan WGM10 Mode



WGM12



WGM11



WGM10



0 1 2 3



0 0 1 1



0 0 1 1



0 1 0 1



4 5 6 7 8



1 1 1 1 1



1 1 1 1 1



1 1 1 1 1



9



1



1



1



10 11 12 13 14 15



1 1 1 1 1 1



1 1 1 1 1 1



1 1 1 1 1 1



Mode Operasi Timer/Counter Normal PWM, Phase Correct, 8 bit PWM, Phase Correct, 9 bit PWM, phase correct, 10 bit CTC Fast PWM, 8 bit Fast PWM, 9 bit Fast PWM, 10 bit PWM, Phase and Frequency Correct PWM, Phase and Frequency Correct PWM, Phase Correct PWM, Phase Correct CTC Reserved Fast PWM Fast PWM



0xFFFF 0x00FF 0x01FF 0x03FF



Update OCR1x saat Immediate TOP TOP TOP



Bendera TOV1 diset saat MAX BOTTOM BOTTOM BOTTOM



OCR1A 0x00FF 0x01FF 0x03FF ICR1



Immediate TOP TOP TOP BOTTOM



MAX TOP TOP TOP BOTTOM



OCR1A



BOTTOM



BOTTOM



ICR1 OCR1A ICR1 ICR1 OCR1A



TOP TOP Immediate TOP TOP



BOTTOM BOTTOM MAX TOP TOP



TOP



TIMER/COUNTER2 Timer/Counter2 adalah Timer/Counter 8 bit yang multifungsi. Fitur-fitur untuk Timer/Counter2 pada ATmega8535 adalah sebagai berikut. a



Sebagai counter 1 kanal.



b



Timer di-nol-kan saat proses pembandingan tercapai (match compare).



c



Dapat mengahasilkan gelombang PWM.



d



Sebagai pembangkit frekuensi.



e



Clock prescaler 10 bit.



f



Sumber interupsi dari compare match (OCF0) dan overflow (TOV0). Pengaturan Timer/Counter2 diatur oleh TCCR2 (Timer/Counter2 Control Register). Bit 7 FOC2



Bit 6 WGM20



Bit 5 COM21



Bit 4 COM20



8



Bit 3 WGM21



Bit 2 CS22



Bit 1 CS21



Bit 0 CS20



Register TCCR2



Penjelasan untuk tiap bit-bitnya adalah sebagai berikut. a



Bit 7 – FOC2: Force Output Compare



b



Bit 6,3 –WGM21, WGM20: Waveform Generation Unit Bit ini mengatur kenaikan dari counter, sumber nilai maksimum counter, dan tipe jenis timer/counter yang dihasilkan, yaitu mode normal, clear timer, mode compare match, dan dua tipe PWM. Berikut tabel pengaturan pada bit WGM untuk menghasilkan mode tertentu. Pengaturan bit-bit ini dapat dilihat pada Tabel 2.12.



11



Pengaturan Bit WGM21 dan WGM20



Mode



c



WGM21 (CTC2)



WGM20 (PWM2)



Mode Operasi Timer/Counter



TOP



Update OCR2



Bendera TOV2 diset saat nilai



0 1



0 0



0 1



Normal PWM, Phase



0xFF 0xFF



Immediate TOP



MAX BOTTOM



2 3



1 1



0 1



Correct CTC Fast PWM



OCR2 0xFF



Immediate TOP



MAX BOTTOM



Bit 5, 4 – COM21, COM20: Compare Match Output Mode



Bit ini mengatur pin OC2 (Output Compare). Apabila kedua bit ini nol atau clear, maka pin OC2 berfungsi sebagai pin biasa, tetapi apabila salah satu bit diset, maka fungsi pin ini tergantung dari pengaturan bit pada WGM20 dan WGM21. Berikut daftar tabel pengaturan bit COM21 dan COM20 sesuai pengaturan bit pada WGM20 dan WGM21. 12



Pengaturan Bit COM21 dan COM20 Mode Non-PWM COM21 COM20 0 0 0 1 1 0 1 1



13



Keterangan Operasi port normal, OC2 tidak dihubungkan. Toggle OC2 saat proses pembandingan tercapai. Clear OC2 saat proses pembandingan tercapai. Set OC2 saat proses pembandingan tercapai.



Pengaturan Bit COM21 dan COM20 Mode Fast PWM COM2 1 0 0 1 1



COM20



Keterangan



0 1 0



Operasi port normal, OC2 tak dihubungkan. Reserved Clear OC2 saat proses pembandingan tercapai, set OC2



1



pada nilai TOP. Set OC2 saat proses pembandingan tercapai, clear OC2 pada nilai TOP.



14



Pengaturan Bit COM21 dan COM20 Mode Phase Correct PWM COM2 1 0 0 1



COM20 0 1 0



Keterangan Operasi port normal, OC2 tak dihubungkan. Reserved Clear OC2 saat proses pembandingan tercapai, yaitu ketika hitungan naik. Set OC2 saat proses pembandingan



1



1



tercapai yaitu, ketika hitungan turun. Set OC2 saat proses pembandingan tercapai, yaitu ketika hitungan naik. Clear OC2 saat proses pembandingan tercapai, yaitu ketika hitungan turun.



d



Bit 2, 1, 0 – CS22, CS21, CS20: Clock Select



Ketiga bit ini untuk memilih sumber clock yang akan digunakan oleh Timer/Counter2. Pengaturan dari bit-bit ini dapat dilihat pada Tabel 2.16. 15



Pengaturan Bit Clock Select CS02 0 0 0 0 1 1



CS0 1 0 0 1 1 0 0



CS0 0 0 1 0 1 0 1



Keterangan Tanpa sumber clock (timer/counter tidak difungsikan). clkI/O /1 (tanpa prescaling) clkI/O /8 (dari prescaler) clkI/O /64 (dari prescaler) clkI/O /256 (dari prescaler) clkI/O /1024 (dari prescaler)