Timer
Timer
enable
Clock in
mux
Clock
eksternal
select
Timer dan counter
• Timer : clock untuk timer berasal dari clock
yang dipakai oleh sistem (internal).Jika
kita menggunakan kristal, clock untuk
timer bersumber dari kristal. Timer
biasanya digunakan untuk pewaktuan
• Counter: clock berasal dari pin Tn(T0,T1
atau TOSC1-TOSC2). Digunakan untuk
mencacah event dari luar(mencacah pulsa
dsb)
Sumber clock untuk timer
• Langsung terhubung ke clock sistem(f_clk)
• Lewat prescaler(pembagi)
– f_clk/8
– f_clk/64
– f_clk/256
– f_clk/1024
Timer 0
• Timer 8 bit
• Register yang digunakan:
– TCNT0 register pencacah, menampung nilai yang
dicacah
– TCCR0 register kontrol, untuk memilih mode
operasi, memilih prescaler
– OCR0 register untuk menentukan nilai maks pada
mode operasi compare
– TIMSK register untuk meng-enable/disable dan
memilih interupsi timer(digunakan juga di timer1 dan
2)
– TIFR register flag yang menandai terjadinya suatu
interupsi timer (digunakan juga di timer1 dan 2)
Mode Operasi Timer 0
Mode Normal
– Register TCNT0 count up dari suatu nilai
sampai mencapai nilai 0xFF kemudian
restart ke nilai 0x00
– Peristiwa restart itu disebut overflow
– Pada saat overflow, bit TOV0 akan logika 1
dan mengakibatkan interupsi(jika interupsi
di-enable)
Mode Operasi Timer 0
2. Mode clear timer on compare match(CTC)
• TCNT0 akan count up dari suatu nilai
sampai mencapai nilai maks (< 0xFF)
• Nilai maks ini didefinisikan di register
OCR0
• Setelah mencapai nilai maks, TCNT0
akan reset kembali ke 0x00 dan bit OCF0
(output compare flag) akan set
• Interupsi akan terjadi jika di-enable
Mode Operasi Timer 0
3. Fast PWM mode
4. Phase correct PWM