• Tidak ada hasil yang ditemukan

Timer ATmega8535

BAB II DASAR TEORI

2.4. Mikrokontroler ATmega8535

2.4.5. Timer ATmega8535

AVR ATMega8535 memiliki 3 buah timer, yaitu Timer/Counter0 (8 bit),

Timer/Counter1(16bit), danTimer/Counter2(8bit) [6].

2.4.5.1. Timer/Counter1

Timer/Counter1 adalah Timer/Counter 8 bit yang multifungsi [6]. Fitur-fitur dari

Timer/Counter1pada ATmega8535 adalah sebagai berikut. a. Counter1 kanal.

b. Timerdi-nol-kan saat proses pembanding tercapai (compare match). c. Sebagai pembangkit gelombang PWM.

d. Sebagai pembangkit frekuensi. e. Clock prescaler10bit.

f. Sumber interupsi daricompare match(OCF0) danoverflow(TOV0).

2.4.5.2.

Register Pengendali Timer/Counter1

1. Timer/Counter1Control RegisterATCCR1A

Tabel 2.6. Register TCCR1A [6]

Bit7:6COM1A1:0:Compare Output Mode for channelA

Bit5:4COM1B1:0:Compare Output Mode for channelB

Bit-bitini bertugas mengendalikan sifat/kelakuan pinOC1A atau OC1B yang berhubungan dengan mode operasi yang digunakan .

Tabel 2.7. Normal dan CTC [6]

Tabel 2.8. Mode fast PWM [6]

Tabel 2.9. Mode phase correct dan phase & frekuensi correct PWM [6]

Bit3FOC1A: Force Output Compare for channel A

Bit2FOC1B: Force Output Compare for channel B

Bit FOC1A/FOC1B hanya dapat digunakan ketika menggunakan mode operasi non-PWM. Jikabit-bitini di-setmaka akan memaksa terjadinyacompare match.

Bit1:0WGM11:0:Waveform Generator Mode

Kedua bit ini bersamaan dengan bit WGM13:12 dalam register TCCR1B berguna untuk memilih mode operasi yang akan kita gunakan [6].

Tabel 2.10. Mode operasi [6] WGM 13 WGM 12 WGM 11 WGM 10 Mode Operasi TOP Update OCR1x Set flag TOV1

0 0 0 0 Normal 0xFFFF immidiet MAX

0 0 1 1

PWMPhase Correct

10-bit

0x03FF TOP BOTTOM

0 1 0 0 CTC OCR1A immidiet MAX

0 1 0 1

FastPWM

8-bit 0x00FF BOTTOM TOP

0 1 1 0

FastPWM

9-bit 0x01FF BOTTOM TOP

0 1 1 1

FastPWM

10-bit 0x03FF BOTTOM TOP

1 0 0 0

PWMPhase

&Frequency Correct

ICR1 BOTTOM BOTTOM

1 0 0 1

PWMPhase

&Frequency Correct

OCR1A BOTTOM BOTTOM

1 0 1 0 PWMPhase

Correct

ICR1 TOP BOTTOM

1 0 1 1 PWMPhase

Correct

OCR1A TOP BOTTOM

1 1 0 0 CTC ICR1 immidiet MAX

1 1 1 0 FastPWM ICR1 BOTTOM TOP

2. Timer/Counter1Control RegisterBTCCR1B

Tabel 2.11. Register TCCR1B [6]

Bit7INC1:Input Capture Noise Canceler

Penge-set-an bit ini akan mengaktifkan Input Capture Noise Canceler pada saat menggunakan mode normal yang capture event [6]. Di mana noise canceler akan memfiltertrigeryang masuk kepinICP1 akan disaring selama 4 siklusclock, jika selama 4 siklusclocktersebuttrigernya berubah maka akan diabaikan.

Bit6ICES1:Input Capture Edge Select

Bit ini mendefinisikan triger yang masuk ke pin ICP1 (PB0) yang digunakan untuk menangkap kejadian (capture event). Jika ICES1=0 makafalling edge(perpindahan dari 1 ke 0) digunakan sebagaitrigerdan jika ICES1=1 makarising edge(perpindahan dari 0 ke 1) digunakan sebagaitriger.

Ketika ada triger pada pin ICP1 (PB0) maka secara otomatis oleh CPU isi register

pencacah TCNT1 akan disalin ke register penangkap ICR1 dan juga berkebalikan pada

flag statusICF1yang digunakan untuk interupsi capture event.

Bit5Reserved Bit

Tidak digunakan

Bit4:3WGM13:2:Waveform Generator Mode

Lihat tabel Mode Operasi

Bit2:0CS12:0:Clock Select

Bit-bit ini bertugas untuk memilih/mendefinisikan/prescaler pulsa/clock yang masuk ke dalamregisterTCNT1.

Tabel 2.12. Prescaler timer/counter1 [6]

3. Output Compare Register1 AOCR1AHandOCR1AL

Tabel 2.13. Register 1A [6]

4. Output Compare Register1 BOCR1BHandOCR1BL

Tabel 2.14. Register 1 B [6]

Registerini bertugas sebagairegisterpembanding yang bisa kita tentukan besarnya sesuai dengan kebutuhan [6]. Dalam praktiknya pada saat TCNT1(TCNT1H:TCNT1L) mencacah maka otomatis oleh CPU akan dibandingkan dengan isi OCR1 (OCR1H:OCR1L) secara kontinyu dan jika isi TCNT1 sama dengan isi OCR1 maka akan terjadi compare match

yang dapat dimanfaatkan untuk mode CTC dan PWM. 5. Input Capture Register1ICR1H and ICR1L

RegisterICR1(ICR1H:ICR1L) akan selau diperbarui dengan isiregister pencacah TCNT1 (pada saat tersebut) sewaktu terjaditriger(capture event) padapinICP1[6].RegisterICR1 juga mempunyai fungsi lain untuk mendefinisikan TOP value pada mode tertentu (lihat tabel mode operasi).

6. Timer/Counter Interrupt Mask RegisterTIMSK

Tabel 2.16. Register TIMSK [6]

Bit5TICIE1: T/C1,Input Capture Interrupt Enable

Bit ini berguna untuk meng-aktif-kan interupsi input capture(penangkap kejadian pada

pinICP1/PB0) ketika bit di-set[6].

Bit4OCIE1A: T/C1,Output CompareAMatch Interrupt Enable

Bit ini berguna untuk meng-aktif-kan interupsi Output Compare A Match ketika bit ini di-set.

Bit3OCIE1B: T/C1,Output CompareBMatch Interrupt Enable

Bit ini berguna untuk meng-aktif-kan interupsi Output Compare B Match ketika bit ini di-set.

Bit2TOIE1:Timer/Counter1, Overflow Interrupt Enable

Bitini berguna untuk meng-aktifkan interupsi overflowTCNT1ketikabitini di-set. 7. Timer/Counter Interrupt Flag RegisterTIFR

Tabel 2.17. Register TIFR [6]

Bit ini akan set secara otomatis ketika menagkap triger pada pin ICP [6]. Bit ini akan

clear juga secara otomatis ketika mengeksekusi vektor interupsi input capture. Untuk meng-clearsecaramanual bitini makabitini harus di-set.

Bit4OCF1A: T/C1,Output CompareAMatch Flag

Bit ini akan set secara otomatis ketika terjadi compare match a. Bit ini akan clear juga secara otomatis ketika mengeksekusi vektor interupsi output compare A. Untuk

meng-clearsecaramanual bitini hars di-set.

Bit3OCF1B:Timer/Counter1,Output CompareBMatch Flag

Bit ini akan set secara otomatis ketika terjadi compare match b. Bit ini akan clear juga secara otomatis ketika mengeksekusi vektor interupsi output compare B. Untuk

meng-clearsecaramanual bitini makabitini harus di-set.

Bit2TOV1:Timer/Counter1,Overflow Flag

Bitini akansetsecara otomatis ketika terjadioverflowpadaregisterpencacah TCNT1. Bit

ini akanclearjuga secara otomatis ketika mengeksekusi vektor overflow timer/counter1. Untuk meng-clearsecaramanual bitini makabitini harus di-set.

2.4.5.3. Mode Operasi

1. Mode Normal

Normal Overflow:

Dalam mode ini register pencacah TCNT1 bekerja secara normal selalu mencacah/menghitung ke-atas atau counting-uphingga mencapai nilai maksimal 0xFFFF lalu 0x0000 lagi atau yang disebut overflow yang menyebabkan flag-TOV1 secara otomatisset yang menandakan terjadinya interupsi jika interupsitimer/counter1 overflow

diaktifkan [6]. Nilai TCNT1tidak harus selalu 0x0000 namun bisa kita tentukan misalnya 0xF89 atau berapapun sesuai kebutuhan.

Normal compare match:

Dalam mode iniregisterTCNT1 bekerja seperti mode normaloverflow, hanya jika kita isi

match yang menyebabkan flag OCF1x secara otomatis set yang menandakan terjadinya interupsi jika interupsitimer1compare match x diaktifkan. Ketika compare match dalam mode ini TCNT1 akan terus menghitung hingga overflow dan mulai dari nol lagi. Kita dapat mengaktifkan ketiga interupsi ini secara bersamaan (overflow, compare match A dan B).

Mode normal input capture:

Pada mode ini timer selalu mencacah ke atas (counting-up) dari BOTTOM (0x0000) hinggaMAX(0xFFFF) lalu mulai dari BOTTOMlagi. Jika meng-aktif-kan interupsiinput capture ketika pada saat ada triger pada pin ICP1 maka CPU akan menyalin (copy) isi TCNT1pada saat itu keregisterpengkap ICR1.

2. Mode CTC (Clear Timer on Compare match)

Dalam mode iniregisterpencacah TCNT1mencacah naik (counting-up) hingga mencapai

TOP(nilai TCNT1sama dengan nilai OCR1yang kita tentukan) lalu kemudian TCNT1nol lagi yang akan otomatis men-set flag OCF1 dan akan membangkitkan interupsi

timer/counter1compare matchjika diaktifkan.

Frekuensi CTC dihitung dengan menggunakan persamaan berikut:

=

_ /

. .( ) (2.1)

Dimana F clk_i/o adalah frekuensiclock chipyang kita gunakan.

N adalahprescalersumberclockyang kita gunakan (1, 8, 64, 256, 1024).

3. Fast PWM Mode

Timer/counter1 dalam modefast PWM digunakan untuk mengendalikan lama t on dan t

offmelaui isiregisterpembanding OCR1A atau OCR1B yang akan berakibat kepada besar

duty cycleyang dihasilkan. Untukchanel(saluran) PWMtimer/counter1 adalahpinOC1A atau OC1B sebagai keluaran saluran PWM. Dalam modefast PWM sifat cacahanregister

pencacah TCNT1 mencacah dari BOTTOM (0x0000) terus mencacah naik (counting-up) hingga mencapai TOP (nilai maksimal yang ditentukan sesuai resolusi yang diinginkan,

misalnya resolusinya 10 bit maka nilai TOP=0x01FF) kemudian mulai dari BOTTOM

lagi dan begitu seterusnya atau yang dinamakansingle slope(satu arah cacahan).

Resolusi fastPWM dapat ditentukan dengan resolusi yang sudah tetap seperti 8-, 9-,

10-bit atau bisa kita tentukan melalui register ICR1 atau OCR1A. Resolusi minimal yang diizinkan adalah 2-bit (ICR1 atau OCR1A diisi 0x0003), dan resolusi maksimal yang diizinkan adalah 16-bit(ICR1atau OCR1A diisi 0xFFFF). Resolusi dapat dihitung dengan menggunakan persamaan berikut:

=

( )

( ) (2.2)

Dalam mode non-invertingsaluran keluaran PWM pin OC1x di-clear pada saat compare match(TCNT1==OCRx) dan di-setketikaBOTTOM(TCNT1=0x0000).

Gambar 2.8. Pulsa fast PWM [6]

Dalam modeinverting saluran keluaran PWM pin OC1x di-set pada saat compare match

(TCNT1==OCRx) dan di-clearketikaBOTTOM(TCNT1=0x0000).

Secara kasar kita bedakan non-inverting dengan inverting dalam mode fast PWM yaitu dilihat dari bentuk pulsanya, di mana PWM non-inverting yang kita kendalikan adalah lama t on nya melalui isi OCR1x, sedangkan PWM inverting yang kita kendalikan adalah lama toffnya melalui isi OCR1x.

FrekuensifastPWM dihitung dengan menggunakan persamaan berikut:

=

_ /

.( ) (2.3)

N adalahprescalersumberclockyang kita gunakan (1, 8, 64, 256, 1024).

4. Phase Correct PWM Mode

Pada mode ini sama dengan “phase & frequency correct PWM” pada cara operasi

cacahanregisterTCNT1menggunakandual slope (dua arah/bolak-balik) di mana TCNT1 mencacah dari BOTTOM (0x0000) counting-up hingga mencapai TOP (resolusi yang digunakan) kemudiancounting-downhinggaBOTTOM(0x0000) dan begitu seterusnya. Resolusi modephase correctPWM dapat kita tentukan secara tetap 8-, 9-, 10-bitatau kita tentukan menggunakan register ICR1 atau OCR1A dimana resolusi minimal yang diizinkan adalah 2-bit (ICR1/OCR1A diisi dengan 0x0003) dan maksimal 16-bit

(ICR1/OCR1A diisi dengan 0xFFFF). Rumus untuk menentukan resolusi mode phase correctPWM.

=

( )

( ) (2.4)

Dalam modenon-inverting saluran keluaran PWM pinOC1x di-clearpada saat compare match (TCNT1=OCRx) ketika counting-up dan di-set pada saat compare match ketika

counting down.

Gambar 2.9. Pulsa phase correct PWM [6]

Dalam modeinverting saluran keluaran PWM pin OC1x di-set pada saat compare match

(TCNT1=OCRx) ketika counting-up dan di-clear pada saat compare match ketika

counting-down.

Frekuensimode phase correctPWM ditentukan dengan rumus:

=

_ /

5. Phase and Frequency Correct PWM Mode

Mode ini sama dengan mode phase correct PWM, hanya berbeda pada waktu

peng-update-tan register OCR1x, di mana mode “phase & frequency correct PWM” register

OCR1x disangga (buffer) sehingga berakibat pada pulsa awal peng-update-tan menjadi simetrik. Padamode phase correct PWM pada pulsa awal peng-update-tan tidak simetrik tapi pulsa selanjutnya simetrik (normal).

Untuk semua mode PWM yang perlu diperhatikan dalam mengubah-ubah nilai TOP

adalah tidak boleh di bawah nilai compare match (register pembanding OCR1x), jika hal ini terjadi maka tidak akan terjadi compare match untuk periode cacahan TCNT1

selanjutnya. Begitu pula untuk mengubah nilai compare match, tidak boleh di atas nilai

TOP, jika hal ini terjadi maka tidak akan terjadi compare match untuk periode cacahan TCNT1selanjutnya.

Untuk flag-flag status akan set berhubungan dengan register-register yang digunakan, misalnya OCF1x berhubungan dengancompare matchOCR1x, ICF1berhubungan dengan nilaiTOP, danflag TOV1akanset ketika TCNT1 mencacah kembali ke BOTTOM. Flag-flagtersebut dapat kita manfaatkan untuk membangkitkan interupsi yang berhubungan.

2.4.5.4. Interupsi

ATmega8535 memiliki 21 buah sumber interupsi [6]. Interupsi tersebut bekerja jika bit 1 pada Register status atau Status Register (SREG) dan bit pada masing-masing register bernilai 1. Penjelasan sumber interupsi terdapat pada Tabel 2.18.

Dokumen terkait