Sabtu, 25 September 2010

Interrupt Timer 1 Pada AVR ATMega 8535


Pada mikrokontroller ATMega 8535 memiliki 3 buah timer yakni Timer0,Timer1,Timer2. Ketiga timer tersebuat dibagi menjadi 2 bagian yakni Timer 8 bit dan 16 bit.

Apa perbedaan dari Timer 8 bit dengan 16 bit???
  • Timer 8 bit yakni pada Timer0 dan Timer2, sesuai dengan namanya timer 8 bit yakni timer yang dapat mencacah dari 0 - 255 atau 0x00 - 0xFF.
  • Timer 16 bit yakni pada Timer1, sesuai dengan namanya timer 16 bit yakni timer yang dapat mencacah dari 0 - 65535 atau 0x0000 - 0xFFFF.



Sekarang kita akan mencoba membahas Timer 1 pada ATMega 8535. Pada Timer ini ada beberapa register yang perlu kita pahami dalam menggunakannya. register ini yakni.TCCR1A,TCCR1B dan TCNT1H,TCNT1L
  •  TCCR1A dan TCCR1B  merupakan register timer untuk mensetting prescaller yang akan kita gunakan. Prescaller adalah nilai pembagi dalam menentukan clock source pada timer.Biasanya clock source yg saya pakai adalah clock sistem (XTAL). Dan kita bisa menset besarnya nilai ini. Maximum sama dengan XTAL, minimum XTAL/1024. Nah nilai pembagi (1024) ini yg disebur nilai prescaler.Untuk menentukan prescaller dapat dilihat tebel register TCCR yakni
Jika kita ingin menggunakan prescaller 256 maka nilai TCCR1B = 0x04. 
  • Sedangkan TCNT1H dan TCNT1L adalah besarnya nilai timer yang akan kita gunakan. Untuk perhitungan pada Timer 1 yakni 
TCNT = (1+0xFFFF) - (waktu *( XTAL / prescaler) )
waktu      = waktu yg kita inginkan
XTAL     = frekuensi xtal yg dipakai
prescaler = nilai prescaler
Sekarang kita akan mencoba membuat timer 1 berjalan dengan siklus 1 detik. Pertama kita buat new project pada CodeVisionC AVR dan pilih mikrokontroller ATMega 8535

kemudian setting timer1 yakni:


 Setelah itu pilih File--> generate save and exit

Perhatikan contoh program dibawah ini,
#include <mega8535.h>
    #include <stdio.h>
  
// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>

    unsigned char buff[30];
    unsigned long detik;

    // sub rutin saat terjadi interrupt Timer 1
    interrupt [TIM1_OVF] void timer1_ovf_isr(void)
    {
    TCNT1H=0x48;
    TCNT1L=0xe5;
    detik++;
    lcd_clear();
    sprintf(buff,"detik %d",detik);
    lcd_puts(buff);
    }
    void main(void)
    {

    // Timer/Counter 1 initialization
    // Clock source: System Clock
    // Clock value: kHz
    // Mode: Normal top=FFFFh
    // OC1A output: Discon.
    // OC1B output: Discon.
    // Noise Canceler: Off
    // Input Capture on Falling Edge
    TCCR1A=0x00;
    TCCR1B=0x04;
    TCNT1H=0xC2;
    TCNT1L=0xF7;
    OCR1AH=0x00;
    OCR1AL=0x00;
    OCR1BH=0x00;
    OCR1BL=0x00;
    // Timer(s)/Counter(s) Interrupt(s) initialization
    TIMSK=0x04;
    // Analog Comparator initialization
    // Analog Comparator: Off
    // Analog Comparator Input Capture by Timer/Counter 1: Off
    // Analog Comparator Output: Off
    ACSR=0x80;
    SFIOR=0x00;
    // LCD module initialization
    lcd_init(16);
    // Global enable interrupts
    #asm("sei")
    lcd_putsf("wait...");
    while (1)
    {

    };
    }
Perhatikan pada nilai TCNT1A dan TCNT1B serta TCCR0B.
karena kita akan membuat timer 1 bekerja pada 1 detik dengan XTAL 12MHz  maka perhitungannya
TCNT = (1+0xFFFF) - (1 *( 12000000 /256) )
Jika kita hitung maka nilai TCNT = 0x48E5, sehingga TCNT1H = 0x48 dan TCNT1L = 0xE5dan karena menggunakan prescaller 256 maka nilai TCCR1B = 0x04.
Selamat berkreasi dengan Timer 1, semoga dapat membantu..
Best Regrads,,,
Nb. Pembaca yang baik selalu meninggalkan komentar

Stumble
Delicious
Technorati
Twitter
Facebook

6 Comments:

Anonim said...

JASA DOWNLOAD EBOOK LUAR NEGERI ( IMPOR )

Bingung cari ebook yang diinginkan ?

Sudah ketemu, tapi harganya mahal banget ?

Tenang aja Bro and Sis. Aku bakal bantu kamu sampai dapetin deh !!!!
Disamping itu harganya gak mahal kq CUMA Rp 5.000 / Ebook ( Pesen 10 Ebook, aku kasih harga 3500 / Ebook ) Murah kan !!!! Daripada nyari atau beli langsung. Kalau sekedar ingin tanya - tanya juga boleh kirim aja pertanyaan kamu VIA EMAIL andyholics@gmail.com

**KHUSUS EBOOK DENGAN UKURAN DIATAS 50 MB, HARGA EBOOK RP. 20.000 / EBOOK**

**KHUSUS BAGI YANG REQUEST MAGAZINE, KONFIRMASI AJA TERLEBIH DAHULU VIA EMAIL andyholics@gmail.com


Dibawah ini ada beberapa kategori yang bisa aku bantu download

Architecture
Articles / Whitepapers
Arts / Cinema / Entertainment
Astronomy / Astrophysics
Audio Books
Biographies
Biology / Zoology / Life Sciences
Business / Commerce
Chemistry
Children's
Comics / Graphic Novels
Communication / Relationship / Self-help
Computers / IT
Crafts / Hobbies
Culture / Pop / Fashion
Dictionaries / Encyclopedias
Documentaries
Economics
Education / Exams / Teaching / Lectures
eMagazines / eJournals
Engineering
Environmental / Agricultural Science
Finance / Investing
Food / Beverages
Games / Card / Puzzles
Geography / Travel / Adventure
Graphics / Photography
Health / Mind / Body
History
Home / Garden
Humor / Comedy / Satire / Wit
Instruction / Study
Language / Linguistics / Grammar
Law
Literature / Fiction
Management / Logistics
Manuals / Handbooks
Martial Arts / Self Defense
Mathematics
Medicine
Military
Music
Pharmaceutical
Philosophy / Ethics
Physics
Politics
Psychology
Religion / Spirituality
Science Classics
Science General
Social Sciences
Sports / Recreation
Statistics
Systems Science
Transportation / Navigation
UnCategorized
Video Training
Writing / Journalism

Cara pemesanan

1. Kirim judul buku yang kamu download VIA EMAIL ke andyholics@gmail.com

2. Kemudian aku crosscheck, Tunggu Konfirmasi dari aku minimal 1/2 Hari - 1 Hari

3. Transaksi Pembayaran Deh

4. Tunggu Ebook kamu minimal 1 Hari - 2 Hari

5. Dapet Deh ebook yang kamu cari selama ini, selamat !!!!

SYARAT DAN KETENTUAN BERLAKU

1. MELAYANI WILAYAH DOMISILI SURABAYA & SEKITARNYA ( UNTUK WILAYAH DILUAR SURABAYA TETAP DILAYANI )
2. ONGKOS KIRIM DITANGGUNG PENGGUNA JASA DOWNLOAD EBOOK

CONTACT PERSON

email : andyholics@gmail.com

TERIMA ORDER 24 JAM / 7 HARI

Anonim said...

gan...bikin postingan kok membingungkan....coba cek perhitungan ente apakah udah pas tuu...atau cuma copas hasil perhitungan orang...bikin confuse....kalo ente pake XTAL 12 Mhz hasilnya kurang tepat tuuu..coba dweeh dihitung ulang...hihihihi

"Menyoe Naa Panee Naa"

redo said...

@anonim: oh ya maaf ya.. hasil perhiungan 0xC2F7 itu saya hitung untuk Xtall 4MHz..
Terimakasih sudah mengingatkan saya.. Sudah saya ganti klo menggunakan 12Mhz maka nilai TCNT = 0x48E5 ...

Anonim said...

:a:

Anonim said...

mas aq mau nanya kalau membuat program kayak menggunakan tampilan menu itu Gman? ya...........tolong bantuannya

Baju Korea said...

makasih atas infonya mas.

Posting Komentar

Entri Populer

 

Menanam Ilmu Copyright © 2010 LKart Theme is Designed by Lasantha