Pada beberapa waktu yang lalu kami telah membahas tentang Timer Pada Mikrokontroller AVR. Pada pembahasan sebelumnya telah dijelaskan tentang pengertian timer serta konsep dasar tentang timer itu sendiri, tidak hanya itu pada artikel sebelumnya juga telah dijelaskan tentang Timer0 pada Mikrokontroller AVR dan juga tentang Prescaler.
Pada kesempatan kali ini, kami akan menjelaskan tentang Timer1 serta perhitungan waktu pada Mikrokontroler AVR. Mungkin beberapa dari kalian memiliki pertanyaan yang sama yaitu apa perbedaan dari Timer0 dan Timer1 dan apa keunggulannya.
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, sedangkan Timer/Counter 0 atau 2 hanya sampai dengan 256. Selain itu, Timer 1 ini juga memiliki 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.
Pada mode normal, TCNT1 akan menghitung naik dan membangkitkan interrupt timer/counter 1 ketika nilainya berubah dari 0xFFFF ke 0x0000. Untuk menggunakan timer yang melakukan pehitungan secara mundur kita cukup memasukkan nilai yang diinginkan pada TCNT1 dan menungggu hingga terjadi “interrupt”, namun dalam melakukan perhitungan maju, maka nilai yang dimasukkan pada TCNT1 harus 65536 dikurangi “timer value”.
Register – register pada Timer/Counter 1 berfungsi untuk mengatur timer dan mode operasinya. Adapun fungsi dari Register tersebut adalah sebagai berikut:
Timer/Counter 1 Control Register A (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.
Bit 3: Force Output untuk kanal A
Bit 2: Force Output untuk kanal B
Bit 1 dan 0: Waveform Generation Mode
Mode operasi TCCR1A ada sebanyak 16 mode yang diatur dalam bit WGM ini dengan mode operasi sebagai berikut:
Timer/Counter Control Register 1 B (TCCR1B)
Keterangan:
Bit 7: Input Capture Noise Canceler, ketika bit ini di-set 1 (high) maka Noise Canceler akan aktif dan masukan dari Input Capture Pin (ICP1) akan ter-filter.
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.
One thought on “Timer/Counter 1 (16 bit) pada AVR”