Thursday, December 1, 2011

Cara penggunaan WinAVR


WinAVR merupakan suatu paket AVR-GCC yang khusus didistribusikan untuk OS Window. AVR-GCC sendiri merupakan kumpulan dari program yang berfungsi untuk mengubah bahasa C menjadi Hex (.Hex) intel.

Compiler C akan menghasilkan file dengan format ".asm" dari setiap file input ".c" yang kemudian akan diubah ke dalam file objek oleh assembler, di mana banyaknya file objek sama dengan file ".asm". Setelah proses tersebut dilakukan, linker akan bertugas untuk menyatukan file-file objek dan fungsi-fungsi yang bersilangan di antara file objek dan mengambil modul library c yang digunakan ke dalam satu file objek yaitu file ".ELF". Dengan menggunakan avr-objcopy file ".ELF" diubah menjadi file ".Hex"

Dari keempat proses tersebut (compiler, assembler, linker, dan avr-objcopy) oleh WinAVR dijadikan dalam satu file yang disebut "makefile", sedangkan untuk proses kompilasi "makefile" itu sendiri ditangani oleh "make.exe"
Dari keterangan tersebut, dapat diambil kesimpulan bahwa untuk pembuatan suatu program dengan menggunkan WinAVR diperlukan :
1. file (nama_file.c) yang berisikan listing program untuk mikokontroler AVR dalam bahasa C
2. file (makefile) yang berisi semua peraturan proses kompilasi program

Proses Instalasi WinAVR
WinAVR dapat diunduh pada link ini
Buka file WinAVR tersebut dan ikuti petunjuk intruksi instalasi hingga selesai.

Untuk menuliskan kode program bahasa c, kita dapat menggunakan software programmer notepad yang secara otomatis ter-install ketika melakukan istalasi WinAVR. Apabila software programmer notepad tidak muncul pada desktop, maka kita dapat memanggil program tersebut pada folder berikut ini :
"C:\WinAVR-20100110\pn" (lokasi tersebut merupakan lokasi default pada saat instalasi WinAVR)

Tampilan Programmer Notepad

Proses pembuatan program
Untuk membuat sebuah file ".c", pilih C/C++ pada menu plain text

Setelah itu save as dengan akhiran ".c" Contoh: "main.c"
Setelah listing program selesai di ketik dan di simpan (contoh "main.c"),langkah selanjutnya pengaturan makefile. Apabila program makefile tidak tersedia pada desktop, maka program tersebut dapat diakses pada folder berikut ini: Start | All Programs | WinAVR-20100110 | Mfile[WinAVR]


Gambar disamping merupakan tampilan dari program Mfile ketika dijalankan. Mfile tersebut sudah memiliki template asli (kode-kode bawaan software) untuk membuat makefile. Dengan adanya template ini kita tidak perlu untuk memahami setiap perintah dalam makefile, akan tetapi kita sudah dimanjakan dengan hanya perlu memilih tipe IC, nama file, frekuensi osilator, dll.


Pengaturan dari Mfile adalah sebagai berikut:
1. Main file name...
Menu ini digunakan untuk nama file ".c" yang akan di compile, misalnya "main.c" maka tulisan pada kolom Main file adalah "main" tanpa tambahan ekstensi ".c"



2. F_CPU
Merupakan pengaturan frekuensi osilator/kristal yang akan digunakan pada mirkokontroler AVR. Nilai frekuensi ini harus sama dengan nilai frekuensi yang akan digunakan pada mikrokontroler AVR. Jika nilainya berbeda, maka detak antara hardware dengan software tidak seirama, sehingga jalanya software tidak akan pernah sama seperti apa yang diharapkan. Pengisin nilai frekuensi ini tidak terdapat pada menu pilihan, sehingga harus diisikan secara manual. Agar dapat mengisiakan data secara manual, maka pilihan "enable editing" harus diaktifkan


















Terdapat 2 cara untuk mengatur nilai frekuensi yang akan digunakan:

1. Hilangkan tanda "#" (pagar) pada salah satu pilihan F_CPU, dan beri tanda "#" pada tulisan F_CPU paling bawah




2. Ubah nilai "F_CPU = 8000000" dengan "F-CPU = 'xxxxxxx'"



Langkah berikutnya adalah pemilihan IC atau MCU type



Kemudian pemilihan Output format

Fungsi ini digunakan untuk memilih format file yang akan dihasilkan. Untuk penggunaan standar, pilih ihex (intel .hex).




Optimization Level

Untuk memilih level dari optimalisasi ukuran file. Pada penggunaan standar, pilihlah "S".
0 = tidak dioptimalisasi
s = optimalisasi ukuran
3 = bukan berarti pada level ini akan menghasilkan kode hex paling kecil.



Debug format
Berfungsi untuk memilih format debug. Apabila hasil dari kompilasi file tersebut ingin disimulasikan pada AVR Studio, maka pilihlah "avr-ext-COFF". Jika tidak, pilihlah "ELF/DWARF-2"



Untuk pengaturan yang terakhir, yaitu Programmer
Pilihlah sesuai dengan downloader yang akan digunakan.
Untuk programmer, dapat menggunakan programmer/downloader dari Innovative Electronics, yaitu DT-HiQ AVR In-System Programmer atau DT-HiQ AVR USB ISP.
DT-HiQ AVR In-System Programmer


DT-HiQ AVR USB ISP

Apabila menggunakan DT-HiQ AVR In-System Progammer, maka pilih "stk200" pada menu "Programmer" dan pilih "lpt1" pada menu "Port"
Setelah selesai melakukan pengaturan, jangan lupa save makefile tersebut. Letakan file tersebut di dalam satu folder dimana file "main.c" disimpan.

















Setelah file makefile siap, maka kita tinggal melakukan proses compile pada file "main.c" dengan menggunakan progammer notepad
Pilih Tools | [WinAVR] Make All
Apabila pada listing program tersebut tidak terdapat kesalahan penulisan, maka programmer notepad akan memberikan konfirmasi bahwa proses compile berhasil



Proses Compile gagal

Proses Compile Berhasil

Apabila terdapat kesalahan pada penulisan, maka proses compile tidak akan dilanjutkan, dan programmer notepad akan memberikan konfirmasi perihal kesalahan pada listing program yang mengakibatkan proses compile di batalkan.
Setelah proses compile telah berhasil, maka WinAVR akan secara otomatis menambahkan beberapa file tambahan pada folder dimana file "main.c" diletakan, seperti :
main.hex, main.eep, main.cof, main.elf, main.map, main.sym, main.lss, main.o, main.lst, main.s, main.d, main.i, .dep.
Jika ingin melakukan proses download ke dalam mikrokontroler, maka pilih Tools | [WinAVR] Program pada programmer notepad. Jika proses program selesai maka programmer notepad akan memberikan konfirmasi kepada kita.

Nah, dengan demikian selesailah penjelasan singkat mengenai penggunaan WinAVR.
Selamat Mencoba!

10 comments:

  1. sangat membantu gan.. thx! bru x ini make winAVR.. bingung, biasa pake AVRstudio... hehe

    ReplyDelete
    Replies
    1. wah, senang rasanya bisa bermanfaat bagi agan...
      sukses selalu..

      Delete
  2. Terima kasih gan ilmumya, ini baru karya indonesia.....semoga tambah sukses!

    ReplyDelete
  3. tutorialnya cara aplikasi software ini sangat membantu saya belajar avr...

    caratekno.com

    ReplyDelete
  4. salam kenal min
    kok setiap saya melakukan kompiling selalu begini
    Compiling C: adc.c
    avr-gcc -c -mmcu=atmega32 -I. -gstabs -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./adc.lst -std=gnu99 -MMD -MP -MF .dep/adc.o.d adc.c -o adc.o
    adc.c: In function 'ADC_read':
    adc.c:40: error: 'ADC_ENABLE' undeclared (first use in this function)
    adc.c:40: error: (Each undeclared identifier is reported only once
    adc.c:40: error: for each function it appears in.)
    adc.c:42: error: 'ADC_START_CONVERSION' undeclared (first use in this function)
    adc.c:62: error: 'ADC_DISABLE' undeclared (first use in this function)
    adc.c: In function 'updateDisplay':
    adc.c:92: warning: unused variable 'c'
    adc.c: In function 'ADC_transmitValue':
    adc.c:116: error: 'TX_NEWLINE' undeclared (first use in this function)
    adc.c:125: warning: implicit declaration of function 'transmitString_F'
    adc.c:126: warning: implicit declaration of function 'transmitByte'
    adc.c:127: warning: implicit declaration of function 'transmitString'
    make.exe: *** [adc.o] Error 1

    > Process Exit Code: 2
    > Time Taken: 00:03
    mohon bantuannya min

    ReplyDelete
    Replies
    1. kelihatanya ada kesalahan deklarasi variable. Bisa lihat file adc.c nya? atau kalau mau bisa kirim email saja filenya. nanti coba saya lihat. thanks.

      Delete
  5. Gan cara untuk ngatur fuse bitnya dari mikrokontrolernya seperti apa ya gan ,

    ReplyDelete
  6. Gan butuh infonya gan minta bantuin cara atur fuse bit mikrokontrolernya

    ReplyDelete
    Replies
    1. Pakai AVRDUDE saja gan...coba cek link ini...
      http://www.ladyada.net/learn/avr/avrdude.html

      thanks...

      Delete