Timer/Counter 1 (16 bit) pada AVR

Timer AVR (www.albireo.at)
Timer AVR (www.albireo.at)
Timer AVR (www.albireo.at)

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”.

Gambar 2 Blok Diagram Timer1 (www.geyosoft.com)
Gambar 2 Blok Diagram Timer1 (www.geyosoft.com)

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)

Tabel 1 Register TCCR1A
Tabel 1 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.

Tabel 2 Compare Output Mode, Non-PWM
Tabel 2 Compare Output Mode, Non-PWM
Tabel 3 Compare Output Mode, Fast PWM
Tabel 3 Compare Output Mode, Fast PWM
Tabel 4 Compare Output Mode Phase Correct dan Phase Correct & Frequency PWM
Tabel 4 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

Tabel 5 Deskripsi Bit WGM
Tabel 5 Deskripsi Bit WGM

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)

Tabel 6 Register TCCR1B
Tabel 6 Register 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.

Tabel 7 Deskripsi Clock Select Bit
Tabel 7 Deskripsi Clock Select Bit

One thought on “Timer/Counter 1 (16 bit) pada AVR”

Leave a Reply

Your email address will not be published. Required fields are marked *