Timer / Counter. Hendawan Soebhakti. November 2009

dokumen-dokumen yang mirip
Sistem Mikrokontroler FE UDINUS

Apa itu timer/counter?

Pengenalan CodeVisionAVR

Timer/Counter. AVR ATMega 8535

PERBANDINGAN KECEPATAN PENCACAHAN ANTARA TIMER 0 (8 BIT) DENGAN TIMER 1 (16 BIT) PADA SISTEM MIKROKONTROLER

MIKROPENGENDALI C TEMU 4 AVR TIMER AND COUNTER. Oleh : Danny Kurnianto,S.T.,M.Eng Sekolah Tinggi Teknologi Telematika Telkom

JOBSHEET VIII MENGGUNAKAN TIMER/COUNTER DALAM MIKROKONTROLER ATMEGA8535

Project : Version : Date : 15/05/2013 Author : F4CG Company : F4CG Comments:

Laboratorium Dasar Teknik Elektro - Sekolah Teknik Elektro dan Informatika ITB Abstrak

LAMPIRAN A SKEMATIK RANGKAIAN

Penerima Remote SONY dengan ATmega32

SKEMATIK RANGKAIAN A V R 12V. Out. Gnd. Kontak Motor. Accu 12V. Klakson ISP CONNECTOR PA0 PB0 PB1 PA2 PA4 MOSI MISO PA6. 10uF SCK RST. 10uF. 47uF.

Ping))) Paralax Ultrasonic Range Finder By : Hendawan Soebhakti

PERCOBAAN I PENGENALAN CODEVISION AVR

MODUL V: Timer dan Counter

JAM DIGITAL 2.2 REGISTER TCNT, TIMSK, OCR, DAN TIFR 1. PENDAHULUAN 2. STUDI PUSTAKA 2.1 CLOCK DAN PRESCALER 3. METODOLOGI 3.

Pulsa = Frekuensi * 60/20 ; atau Pulsa = frekuensi*30;

Standar Operasional Prosedur Alat

LAMPIRAN A. Gambar A. Layout alat tongkat tunanetra. Ubiversitas Sumatera Utara

Langkah-langkah pemrograman: 1. Pilih File >> New:

LAMPIRAN 1 DATA SHEET SERVO GWS S677

DAFTAR PUSTAKA. Universitas Sumatera Utara

Membuat Sendiri Robot Line Tracker

Langkah-langkah pemrograman: 1. Pilih File >> New:

Listing Program. // Declare your global variables here

LAMPIRAN A FOTO REALISASI ALAT

LAMPIRAN A RANGKAIAN LENGKAP dan FOTO PENGUAT KELAS D

Tabel Data Pengujian 5x Perubahan Posisi. Kanan (V) Kiri (V)

PERANCANGAN KEYPAD MESIN FOTOCOPY SEDERHANA MENGGUNAKAN ATMEL AVR ATmega8535

Instruktur : Ferry Wahyu Wibowo, S.Si., M.Cs.

LAMPIRAN. #include <mega16.h> //menambahkan library atmega16 #include <delay.h> //menambahkan library delay #define ADC_VREF_TYPE 0x40

LAMPIRAN A DATA SHEET

POLITEKNIK CALTEX RIAU

BAB II TINJAUAN PUSTAKA

Mikrokontroler AVR. Hendawan Soebhakti 2009

A-1 LISTING PROGRAM MIKROKONTROLER

i ii BAB I MENGENAL ATMEGA BAB II MENGENAL BAHASA C BAB III TRAINER MIKROKONTROLER 1. Modul Boar..

Digital Compass CMPS03 By : Hendawan Soebhakti

MAKALAH. Timer atau Counter 0 dan 1. Oleh : Rizky Dwi N ( ) Satrio Teguh Yulianto ( ) D3 TEKNIK ELEKTRO JURUSAN TEKNIK ELEKTRO

MAKALAH PERANCANGAN KEYPAD MESIN FOTOKOPI SISTEM MIKROPROSESOR

Kajian Pustaka. Spesifikasi - Krisbow KW Fitur - Krisbow KW06-290

Gambar 4.1 Rangkaian keseluruhan

DAFTAR PUSTAKA. Barry, Gwoollard Elektronika Praktis. PT. Praditya Paramitha, Jakarta.

BAB II TEORI DASAR. AVR merupakan seri mikrokontroler Complementary Metal Oxide

TUGAS AKHIR SIMULATOR PENGHITUNG JUMLAH ORANG PADA PINTU MASUK DAN KELUAR GEDUNG

Listing Program Aquaponik

Materi 8: AVR Timer Programming

MIKROKONTROL ATMega8535 Teknik Elektronika Industri

BAB III PENGENDALIAN PENGGERAK PAHAT MESIN ROUTER CNC ARAH SUMBU X, SUMBU Y DAN SUMBU Z

Teknik-Teknik Penyesuaian Sensor

TERJADI INTERRUPT MELAYANI INTERRUPT KEMBALI MENERUSKAN PROGRAM YANG TERHENTI PROGRAM YANG SEDANG BERJALAN. Gambar 4.1 Interrupt

Universitas Sumatera Utara

WATTMETER DIGITAL AC BERBASIS MIKROKONTROLER ATMEGA8. Ageng Pidaksa Mahasiswa Jurusan Pendidikan Teknik Elektronika F.T.

PRAKTIKUM MIKROPROSESSOR PTE-408 PRODI S1 PENDIDIKAN TEKNIK ELEKTRO PETUNJUK PRAKTIKUM DYAH LESTARI

PERTEMUAN TIMER & COUNTER MIKROKONTROLER 89C51

LAMPIRAN A PROGRAM CODE VISION AVR

Sistem Mikrokontroler FE UDINUS

LAMPIRAN. A. Pembuatan Minimun system dan Penanaman Program 1. Rangkaian Minimum System yang telah dilarutkan, di bor dan dipasang komponen

PENGATURAN TIRAI BERDASARKAN WAKTU NYATA

BAB IV PEMBAHASAN. waktu tertentu. Dimana alat tersebut dapat dioperasikan melalui komputer serta

BAB II LANDASAN TEORI

MENGENAL MIKROKONTROLER AVR ATMega16

RANCANG BANGUN OTOMATISASI PINTU GARASI DENGAN KOMUNIKASI BLUETOOTH BERBASIS MIKROKONTROLER

PELATIHAN: Pemrograman Mikrokontroler Tipe AVR bagi Guru-guru SMK

AVR ATmega8. Kuliah SBM

TUGAS AKHIR ROBOT PENERIMA TAMU. Diajukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar SarjanaTeknik Program Studi Teknik Elektro.

Bab II Dasar Teori (2.1)

BAB III PERANCANGAN UIMEGA 8535

BAB III PERANCANGAN ALAT DAN PROGRAM MIKROKONTROLER. program pada software Code Vision AVR dan penanaman listing program pada

Materi 9: AVR Interrupt

BAB III PERANCANGAN DAN PEMBUATAN SISTEM. perangkat keras maupun perangkat lunak yang meliputi:

MONITORING ARUS PLTMH UMM MELALUI JALA-JALA LISTRIK BERBASIS ATMEGA

MODE OPERASI TIMER/COUNTER. Oleh : Sumarna, Jurdik Fisika, FMIPA, UNY

MODUL 8 Analog Digital Converter (ADC)

KONFIGURASI PIN AT MEGA 16A

TUTORIAL DASAR MEMBUAT PROJECT ARDUINO UNO

BAB 3 PERANCANGAN SISTEM. pada sistem pengendali lampu telah dijelaskan pada bab 2. Pada bab ini akan dijelaskan

BAB III PERANCANGAN SISTEM

TEMPAT SAMPAH BERJALAN TERKENDALI JARAK JAUH

ALAT PENAKAR VOLUME AIR BERBASIS MIKROKONTROLER

TPA81 Thermopile Array

TIMER DAN COUNTER MIKROKONTROLER ATMEL

DAFTAR PUSTAKA. Bejo, Agus C & AVR Rahasia Kemudahan Bahasa C Dalam Mikrokontroler ATMega 8535.Yogyakarta:Graha Ilmu.

BAB II DASAR TEORI. Current Transformer atau yang biasa disebut Trafo arus adalah tipe instrument

MIKROKONTROLER Arsitektur Mikrokontroler AT89S51

MODUL PELATIHAN MIKROKONTROLLER UNTUK PEMULA DI SMK N I BANTUL OLEH: TIM PENGABDIAN MASYARAKAT JURUSAN TEKNIK ELEKTRO

BAB IV PENGUJIAN. 4.1 Umum. Untuk dapat menentukan kualitas kerja suatu alat perlu dilakukan satu

BAB II LANDASAN TEORI

Pemrograman Mikrokontroler dengan Bahasa C Lanjut

JOBSHEET VII MENGGUNAKAN INTERRUPT DALAM MIKROKONTROLLER ATMEGA8535

BAB 2 MIKROKONTROLER H8/3052. Mikrokontroler yang digunakan dalam skripsi ini adalah H8/3052F, yaitu seri

CLAMP-METER PENGUKUR ARUS AC BERBASIS MIKROKONTROLER TUGAS AKHIR

PENGENDALI KECEPATAN MOTOR DC MENGGUNAKAN SENSOR HALL BERBASIS MIKROKONTROLER ATMEGA 8535

Fungsi Soft Timer untuk Keperluan Operasi Tundaan dan Penjadwalan (Scheduling) Pada Sistem Embedded

BAB IV HASIL KERJA PRAKTEK. sistem perancangan ini memiliki sensor untuk mengetahui seberapa intensitas cahaya

PEMBANGKIT DAN PENGHITUNG FREKUENSI

EMDEDDED ARRAY SENSOR UNTUK LINE FOLLOWING ROBOT

UNIVERSITAS MEDAN AREA

PRODUKSI OBAT ASMA SEDUH BERBASIS MIKROKONTROLER ATmega8535

Gambar 3.1 Blok Diagram Port Serial RXD (P3.0) D SHIFT REGISTER. Clk. SBUF Receive Buffer Register (read only)

Transkripsi:

Timer / Counter Hendawan Soebhakti November 2009

Sub Pokok Bahasan Jenis Timer/Counter Register TIMSK dan TIFR Interrupt Timer Sistem Mikrokontroler - By : Hendawan Soebhakti 2

Timer/Counter Jenis-jenis Timer Pada ATMega8535L terdapat 4 buah fasilitas timer yaitu : Timer 0 : Adalah timer 8 bit dengan timer value 00 s/d FF Timer 1 : Adalah timer 16 bit dengan timer value 0000 s/d FFFF Timer 2 : Adalah timer 8 bit dengan timer value 00 s/d FF Watchdog timer : Adalah timer untuk mereset sendiri Timer pada dasarnya hanya menghitung pulsa clock. Frekuensi pulsa clock yang dihitung tersebut bisa sama dengan frekuensi crystal yang dipasang atau dapat diperlambat menggunakan prescaler dengan faktor 8, 64, 256 atau 1024. Sedangkan Counter menghitung pulsa pada pin Tn dan tidak bisa diperlambat seperti halnya timer. Sistem Mikrokontroler - By : Hendawan Soebhakti 3

Timer 8 bit Maximum Value TCNTx=FF TMAX = 1/fCLK x (FF+1)xN Initial Value Put in TCNTx FF Timer Overflow TOV=1 TMAX fclk N : Waktu maksimum timer : Frekuensi clock : Prescaler 01 00 03 02... 7F Zero TCNTx=00 00 Example : fclk = 8MHz Prescaler =1024 TMAX = 1/fCLK x (FF+1) x N = 0.125uS x 256 x 1024 = 32768uS = 32.768mS 8-bit Up Counter Sistem Mikrokontroler - By : Hendawan Soebhakti 4

Timer 16 bit Maximum Value TCNTxH=FF, TCNTxL=FF TMAX = 1/fCLK x (FFFF+1)xN Initial Value Put in TCNTxH & TCNTxL FFFF Timer Overflow TOV=1 TMAX fclk N : Waktu maksimum timer : Frekuensi clock : Prescaler 0001 0000... 0003 0002 007F Zero TCNTxH=00, TCNTxL=00 0000 Example : fclk = 8MHz Prescaler =1024 TMAX = 1/fCLK x (FFFF+1) x N = 0.125uS x 65536 x 1024 = 8388608 us = 8.388608 S 16-bit Up Counter Sistem Mikrokontroler - By : Hendawan Soebhakti 5

Timer Value (TCNT) Untuk menentukan berapa timer value yang harus diisikan ke TCNT agar menghasilkan waktu timer tang kita inginkan dapat dihitung dengan persamaan sbb : Timer 8 bit : TCNT=(FF+1)-((Ttimer x fclk)/n) Timer 16 bit : TCNT=(FFFF+1)-((Ttimer x fclk)/n) Contoh : Diinginkan sebuah timer 16 bit bekerja selama 1 detik, dengan frekuensi clock sebesar 11,0592MHz dan presecaller 1024 maka diperoleh nilai TCNT sebesar : TCNT=(FFFF+1) - ((Ttimer x fclk)/n) TCNT=(FFFF+1) - ((1 x 11059200)/1024) TCNT=10000h - 10800d TCNT=10000h - 2A30h TCNT=D5D0h Dengan demikian nilai TCNTH = D5h dan TCNTL = D0h Sistem Mikrokontroler - By : Hendawan Soebhakti 6

Register TIMSK dan TIFR Timer Interrupt Mask Register (TIMSK) dan Timer Interrupt Flag (TIFR) Register digunakan untuk mengendalikan interrupt mana yang diaktifkan dengan cara melakukan setting pada TIMSK dan untuk mengetahui interrupt mana yang sedang terjadi. 7 6 5 4 3 2 1 0 OCIE2 TOIE 2 TICIE 1 OCIE 1A OCIE1B TOIE1 OCIE0 TOIE 0 TIMSK / Timer/Counter Interrupt Mask Register Bit Symbol Fuction 7 OCIE2 Timer/Counter2 Output Compare Match Interrupt Enable. 6 TOIE2 Timer/Counter2 Overflow Interrupt Enable. 5 TICIE1 Timer1 Input Capture Interrupt Enable 4 OCIE1A Timer/Counter1A Output Compare Match Interrupt Enable. 3 OCIE1B Timer/Counter1B Output Compare Match Interrupt Enable. 2 TOIE1 Timer/Counter1 Overflow Interrupt Enable. 4 OCIE0 Timer/Counter0 Output Compare Match Interrupt Enable. 0 TOIE0 Timer/Counter0 Overflow Interrupt Enable. Sistem Mikrokontroler - By : Hendawan Soebhakti 7

Register TIMSK dan TIFR 7 6 5 4 3 2 1 0 OCF2 TOV2 ICF 1 OCF1A OCF1B TOV1 OCF0 TOV0 TIFR / Timer/Counter Interrupt Flag Register Bit Symbol Fuction 7 OCF2 Output Compare Flag2. 6 TOV2 Timer/Counter2 Overflow Flag. 5 ICF1 Timer1 Input Capture Interrupt Flag 4 OCF1A Output Compare Flag1A. 3 OCF1B Output Compare Flag1B. 2 TOV1 Timer/Counter1 Overflow Flag. 4 OCF0 Output Compare Flag0. 0 TOV0 Timer/Counter0 Overflow Flag. Sistem Mikrokontroler - By : Hendawan Soebhakti 8

Interrupt Timer Interrupt yang dapat dihasilkan dari timer adalah sbb : Vector No Program Address Source Interrupt Definition 4 0x0003 TIMER2 COMP Timer/Counter2 Compare Match 5 0x0004 TIMER2 OVF Timer/Counter2 Overflow 6 0x0005 TIMER1 CAPT Timer/Counter1 Capture Event 7 0x0006 TIMER1 COMPA Timer/Counter1 Compare Match A 8 0x0007 TIMER1 COMPB Timer/Counter1 Compare Match B 9 0x0008 TIMER1 OVF Timer/Counter1 Overflow 10 0x0009 TIMER0 OVF Timer/Counter0 Overflow 20 0x0013 TIMER0 COMP Timer/Counter0 Compare Match Sistem Mikrokontroler - By : Hendawan Soebhakti 9

Setting Timer 0 Pada CodeWizard 1. Menentukan fungsi Timer atau Counter Sebagai Timer : Clock Source = System Clock Sebagai Counter : Clock Source = T0 pin Falling Edge atau T0 pin Rising Edge Sistem Mikrokontroler - By : Hendawan Soebhakti 10

Setting Timer 0 Pada CodeWizard 2. Menentukan Prescaler Sebagai Timer : Clock Value dapat dipilih sbb : Timer 0 Stopped : Clock eksternal 11059.200 khz : No prescaler 1382.400 khz : Prescaler 8 172.800 khz : Prescaler 64 43.200 khz : Prescaler 256 10.800 khz : Prescaler 1024 Sebagai Counter : Tidak ada prescaler Sistem Mikrokontroler - By : Hendawan Soebhakti 11

Setting Timer 0 Pada CodeWizard 3. Menentukan Mode Timer Sebagai Timer atau Counter : Mode timer dapat dipilih sbb : Normal top=ffh Phase correct PWM top=ffh CTC top=ocr0 Fast PWM top=ffh : Mode normal : Mode PWM : Mode Clear Timer on Compare Match : Mode High Frequency PWM Sistem Mikrokontroler - By : Hendawan Soebhakti 12

Setting Timer 0 Pada CodeWizard 4. Menentukan Mode Pulsa pada pin OC0 (Output Compare Timer 0) Sebagai Timer atau Counter : Mode Pulsa pada pin OC0 dapat dipilih sbb : Toggle on compare match : Pulsa berubah ketika terjadi match Clear on compare match : Pulsa low ketika match Set on compare match : Pulsa high ketika match Fungsi ini berguna saat pin OC0 berfungsi sebagai waveform generator (Pembangkit pulsa) Sistem Mikrokontroler - By : Hendawan Soebhakti 13

Setting Timer 0 Pada CodeWizard 5. Mengaktifkan Timer Interrupt dan Compare Match Interrupt Sebagai Timer atau Counter : Overflow Interrupt Jika diaktifkan maka pada saat timer overflow akan terjadi interrupt dan CPU akan menjalankan Timer 0 overflow interrupt service routine (timer0_ovf_isr). Nilai TCNT dapat diisikan pada Timer Value :. h Compare Match Interrupt Jika diaktifkan maka pada saat timer value TCNT0 match dengan nilai register OCR0 akan terjadi interrupt dan CPU akan menjalankan Timer 0 output compare interrupt service routine (timer0_comp_isr). Nilai OCR0 dapat diisikan pada Compare :. h Sistem Mikrokontroler - By : Hendawan Soebhakti 14

Setting Timer 1 dan 2 Pada CodeWizard Setting Timer 1 dan Timer 2 hampir sama dengan setting Timer 0, hanya saja untuk Timer 1 lebih banyak fasilitas yang disediakan dan timer ini adalah timer 16 bit. Sistem Mikrokontroler - By : Hendawan Soebhakti 15

Example Percobaan 1. Interrupt Timer 1 Pada percobaan ini, kita akan membuat program interrupt yang dihasilkan oleh Timer 1. Pada kondisi normal PortA akan bernilai 0xFF, namun pada saat ada interrupt kondisinya berubah menjadi 0x00 selama 500mS. Interrupt timer terjadi setiap 5S (Timer Value = 2D10h). Setting CodeWizard PortA sebagai Output Timer 1 : Clock Source : System Clock Clock Value : 10.800 khz Mode : Normal top=ffffh Interrupt on : Timer 1 Overflow Value : 2d10 h Sistem Mikrokontroler - By : Hendawan Soebhakti 16

Example #include <mega8535.h> #include <delay.h> // Timer 1 overflow interrupt service routine interrupt [TIM1_OVF] void timer1_ovf_isr(void) { // Reinitialize Timer 1 value TCNT1H=0x2D; TCNT1L=0x10; Timer 1 Overflow ISR // Place your code here PORTA=0x00; delay_ms(500); } // Declare your global variables here void main(void) {... while (1) { // Place your code here PORTA=0xFF; Normal Condition }; } Sistem Mikrokontroler - By : Hendawan Soebhakti 17

Example Percobaan 2. Counter 0 Pada percobaan ini, kita akan membuat program counter dengan mode compare match interrupt. Mikrokontroler akan menghitung jumlah pulsa yang masuk pada T0 (PINB.0). Jika jumlah pulsanya sama dengan 10 pulsa (0x0A) maka mikrokontroler akan melaksanakan void timer0_comp_isr. Setting CodeWizard PortA sebagai Output Timer 0 : Clock Source : T0 pin Falling Edge Mode : Normal top=ffh Compare Match Interrupt Compare : 0a h Sistem Mikrokontroler - By : Hendawan Soebhakti 18

Example #include <mega8535.h> #include <delay.h> // Timer 0 output compare interrupt service routine interrupt [TIM0_COMP] void timer0_comp_isr(void) { // Place your code here PORTA=0x0F; delay_ms(500); PORTA=0xF0; Timer 0 Output Compare ISR delay_ms(500); PORTA=0x0F; delay_ms(500); PORTA=0xF0; delay_ms(500); } // Declare your global variables here void main(void) {... while (1) { // Place your code here PORTA=0xFF; delay_ms(500); PORTA=0x00; Normal Condition delay_ms(500); }; } Sistem Mikrokontroler - By : Hendawan Soebhakti 19

Example Percobaan 3. Menghitung Pulsa Per Detik Pada percobaan ini, kita akan membuat program untuk menghitung jumlah pulsa yang masuk pada pin T0 setiap detiknya. Untuk itu maka Timer 0 difungsikan sebagai counter dan Timer 1 difungsikan sebagai timer 1 detik. Hasil perhitungan pulsa akan ditampilkan ke PortA. Setting CodeWizard PortA sebagai Output Timer 0 : Clock Source : T0 pin Falling Edge Mode : Normal top=ffh Compare Match Interrupt Timer 1 : Clock Source Clock Value Mode Interrupt on Value : System Clock : 10.800 khz : Normal top=ffffh : Timer 1 Overflow : d5d0 h Sistem Mikrokontroler - By : Hendawan Soebhakti 20

Example #include <mega8535.h> // Timer 1 overflow interrupt service routine interrupt [TIM1_OVF] void timer1_ovf_isr(void) { // Reinitialize Timer 1 value TCNT1H=0xD5; TCNT1L=0xD0; // Place your code here PORTA=TCNT0; TCNT0=0; } // Declare your global variables here void main(void) {... while (1) { // Place your code here }; } Timer 1 Overflow ISR Normal Condition Sistem Mikrokontroler - By : Hendawan Soebhakti 21

Latihan 1. Buatlah program untuk menaikkan (increment) data pada PortA dari 0x00 sampai ke 0xFF setiap interval 3 detik. Gunakan fasilitas timer 2. 2. Buatlah program untuk menghitung jumlah pulsa pada pin T0 setiap 5 detik. Tampilkan hasilnya pada PortA. Sistem Mikrokontroler - By : Hendawan Soebhakti 22