Pengertian CodeVisionAVR
CodeVisionAVR dalam dasarnya merupakan aplikasi pemrograman microcontroller famili AVR berbasis bahasa C. Ada 3 komponen krusial yg sudah diintegrasikan dalam aplikasi ini: Compiler C, IDE dan Program generator.
Berdasarkan spesifikasi yg dikeluarkan oleh perusahaan pengembangnya, Compiler C yang dipakai hampir mengimplementasikan seluruh komponen standar yg ada pada bahasa C baku ANSI (seperti struktur acara, jenis tipe data, jenis operator, dan library fungsi standar-berikut penamaannya). Tetapi walaupun demikian, dibandingkan bahasa C buat pelaksanaan personal komputer , compiler C buat microcontroller ini memiliki sedikit perbedaan yg disesuaikan menggunakan arsitektur AVR tempat acara C tadi ditanamkan (embedded).
Khusus buat library fungsi, disamping library standar (seperti fungsi-fungsi matematik, manipulasi String, pengaksesan memori dan sebagainya), CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yg sangat berguna pada pemrograman antarmuka AVR dengan perangkat luar yg generik dipakai dalam aplikasi kontrol. Beberapa fungsi library yg penting diantaranya adalah fungsi-fungsi untuk pengaksesan LCD, komunikasi I2C, IC RTC (Real time Clock), sensor suhu LM75, SPI (Serial Peripheral Interface) serta lain sebagainya.
Untuk memudahkan pengembangan program pelaksanaan, CodeVisionAVR juga dilengkapi IDE yg sangat user friendly (lihat gambar 1.1). Selain pilihan menu-pilihan menu pilihan yg umum dijumpai dalam setiap perangkat lunak berbasis Windows, CodeVisionAVR ini telah mengintegrasikan software downloader (in system programmer) yang bisa dipakai buat mentransfer kode mesin hasil kompilasi kedalam sistem memori microcontroller AVR yang sedang deprogram.
CodeVisionAVR 1.dua.4.9 merupakan suatu kompiler berbasis bahasa C, yang terintegrasi buat memprogram serta sekaligus compiler aplikasi AVR (Alf and Vegard’s Risc processor) terhadap mikrokontroler menggunakan sistem berbasis window. CodeVisionAVR ini dapat mengimplematasikan hampir semua interuksi bahasa C yg sinkron menggunakan arsitektur AVR, bahkan masih ada beberapa keunggulan tambahan buat memenuhi keunggulan spesifikasi dari CodeVisionAVR yaitu output kompilasi studio debugger menurut ATMEL.
Integrated Development Environtment (IDE) telah diadaptasikan pada chip AVR yaitu In-System Programmer aplikasi, memungkinkan programmer buat mentransfer acara ke chip mikrokontroler secara otomatis selesainya proses assembly/kompilasi berhasil. In-System Programmer aplikasi didesign buat bekerja serta bisa berjalan dengan perangkat lunak lain seperti AVR Dragon, AVRISP, Atmel STK500, dan lain sebagainya.
Disamping library baku C, CodeVisionAVR C compiler memiliki librari lain untuk:
- Modul LCD Alpanumerik
- Delays
- Protokol semikonduktor Maxim/Dallas
- Dan lainnya
CodeVisionAVR pula mempunyai CodeWizardAVR sebagaki generator program otomatis, yg memungkinkan kita buat menulis, segala bentuk pengaturan Chip pada ketika singkat, serta seluruh kode yang diperlukan buat mengimplementasikan fungsi-fungsi seperti:
Pengaturan akses External Memory
Untuk chip-chip AVR yg memungkinkan koneksi memori eksternal SRAM, dapat jua mengatur ukuran memori dan wait state (tahap tunggu) menurut memori waktu memori tersebut diakses.
Identifikasi chip reset source
Adalah suatu layanan dimana kita dapat menciptakan kode secara otomatis yang dapat mengidentifikasi syarat yg mengakibatkan chip pada reset.
Inisialisasi port input/output
Pengaturan port-port yg kan dijadikan gerbang masukan serta keluaran dapat secara otomatis digenerate codenya. Yang kita lakukan hanya memilih port-port yang akan dipakai sebagai input atau output.
Inisialisasi Interupsi external
Pengaturan interupsi eksternal yang nantinya akan digunakan buat menginterupsi program primer
Inisialisasi timers/counters
Pengaturan timers yg berfungsi buat mengatur frekwensi yg nantinya dipakai dalam interupsi.
Inisialisasi timer watchdog
Pengaturan timers yang berfungsi buat mengatur frekwensi yang nantinya dipakai dalam interupsi, sebagai akibatnya interupsi akan dilayani oleh suatu fungsi wdt_timeout_isr .
Inisialisasi UART(USART) serta komunuikasi serial
Pengaturan komunikasi serial menjadi penerima atau pengirim data.
Inisialisasi komparasi analog
Pengaturan yang berkaitan menggunakan masukan data yang digunakan pada pelaksanaan yg membutuhkan komparasi pada ADC nya.
Inisialisasi ADC
Pengaturan ADC(Analog-Digital Converter) yang berfungsi buat merubah format analog sebagai format digital untuk diolah lebih lanjut.
Inisialisasi antarmuka SPI
Pengaturan chip yang berkaitan menggunakan Clock rate, Clock Phase, dan lainnya.
Inisialisasi antarmuka Two Wire BUS
Pengaturan Chip yang berhubungan dengan pola jalur komunikasi antara register yang terdapat dalam chip AVR.
Inisialisasi antarmuka CAN
Pengaturan chip yg lebih kompleks, yg dapat mengatur interupsi, transmisi data, timers, serta lainnya.
Inisialisasi sensor temperatur, thermometer, serta lainnya
Pengaturan yang berhubungan dengan sensor temperatur one wire bus, mempunyai fungsi-fungsi yg terdapat pada librari CodeVisionAVR.
Inisialisasi one wire bus
Pengaturan yang berhubungan dengan sensor temperatur yg mempunyai fungsi-fungsi yg terdapat dalam librari CodeVisionAVR. Seperti Maxim/Dallas Semiconductor.
Inisialisasi modul LCD
Pengaturan port-port yg kan dipakai menjadi penghubung dengan LCD alphanumerik.
Contoh cara kerja sebelum melakukan pemograman pada AVR, dimana model disini merupakan contoh pengaturan acara agar mikrokontroler dapat berkomunikasi menggunakan komputer:
a. Memilih project baru serta melakukan penyetingan komponen yang digunakan dalam board.
b. Pengaturan IC/Chip, dalam chip yang kita wajib dilakukan merupakan IC apa yg kita gunakan, dalam hal ini ATMEGA8535l menggunakan Clock 16 MHz. Clock ini wajib pada atur dengan berukuran 16 MHz, karena dalam komponen oksilator yg dipakai sebesar 16 MHz.
c. Pengaturan ADC, dalam ADC ini terdapat beberapa pilihan yg wajib dipilih. Antara lain ADC Enable di check list(v), Use 8 bit di check list(v), high speed di check list (v) dan Volt Ref dipilih ‘AVCC PIN’. AVCC PIN bermanfaat sebagai referensi tegangan dalam ADC buat nilainya sebanyak lima volt.
d. Pengaturan USART, usart ini yg nantinya menghubungkan rangkaian mikrokontroler menggunakan PC (personal komputer ). Langkah-langkah yang dilakukan dengan adanya pilihan Receiver pada check list(v) dan Transmitter pada check list(v). Pengaturan receiver berfungsi apakah serial itu sebagai penerima data, sedangkan transmitter berfungsi serial mampu dipakai sebagai pengiriman data.
Untuk lebih jelas tampilan pengaturan yg disediakan oleh AVR dapat ditinjau dalam gambar dibawah ini :
Gambar Form Pegaturan CodeVisionAVR
Selain bentuk konfigurasi hadware yang nantinya secara otomatis akan membangun sebuah instruksi layaknya perintah acara ke IC/Chip, adapula perintah program yang kita ketik sendiri.
Selain itu, CodeVisionAVR pula menyediakan sebuah tool yang dinamakan menggunakan Code Generator atau CodeWizardAVR (lihat gambar dua.1). Secara simpel, tool ini sangat bermanfaat membentuk sebuah kerangka program (template), dan juga memberi kemudahan bagi programmer pada peng-inisialisasian register-register yg masih ada dalam microcontroller AVR yang sedang diprogram. Dinamakan Code Generator, karena aplikasi CodeVision ini akan membangkitkan kode-kode acara secara otomatis selesainya fase inisialisasi pada ventilasi CodeWizardAVR terselesaikan dilakukan. Secara teknis, penggunaan tool ini dalam dasarnya hampir sama menggunakan application wizard pada bahasa-bahasa pemrograman Visual buat personal komputer (misalnya Visual C, Borland Delphi, dan sebagainya).
Disamping versi yang komersil, Perusahaan Pavel Haiduc jua mengeluarkan CodeVisionAVR versi Demo yg dapat didownload dari internet secara perdeo (lihat alamat URL: //www.hpinfotech.ro) Dalam versi ini, memori flash yang dapat diprogram dibatasi maksimal 2K, selain itu nir semua fungsi library yang tersedia bisa dipanggil secara bebas.
Seperti halnya belajar pemrograman personal komputer , supaya menerima pemahaman yg bertenaga pada pemrograman microcontroller AVR, anda sebaiknya mencoba pribadi membuat aplikasi program pada microcontroller tersebut. Untuk tujuan latihan, software CodevisionAVR versi demo dalam dasarnya adalah wahana yang cocok serta sudah relatif memenuhi kebutuhan minimal anda. Gambar 1.4. Berikut menerangkan diagram blok yg mengilustrasikan alur pemrograman microcontroller AVR menggunakan CodevisionAVR yg bisa anda lakukan :
Gambar Alur pemrograman microcontroller AVR menggunakan menggunakan CodevisionAVR
Seperti terlihat dalam gambar dua.2, CodevisionAVR pada dasarnya sudah mengintegrasikan komponen-komponen penting pada pemrograman microcontroller AVR: Editor,Compiler C, assembler serta ISP (In System Programmer). Khusus menggunakan ISP, ada beberapa jenis perangkat keras programmer dongle (berikut papan pengembangnya) yang telah didukung oleh perangkat lunak CodevisionAVR ini, galat satu diantaranya merupakan Kanda System STK 200/300 produk Perusahaan Kanda yg terhubung pada saluran antarmuka port Paralel Komputer.
Jika anda berencana membuat dongle yg kompatible menggunakan produk Kanda, rangkaiannya bisa dicermati dalam situs:http:\www.grandtonics.com. Atau jika mau membeli sistem yg siap gunakan (berupa dongle beserta papan pengembangnya), galat satu produk pada negeri menggunakan harga yang relative murah merupakan DT AVR nano/micro System dialamat URL:http//www.innovative_electronic.com., Sistem ini kompatibel menggunakan kanda System STK 200/300. Untuk tujuan-tujuan percobaan, produk innovative_electronic ini telah sangat memadai, selain mudah dihubungkan menggunakan modul-modul perangkat input/output, misalnya modul LCD, keypad, array LED, penggerak motor stepper, dan sebagainya, sistem ini pula telah dilengkapi konverter TTL ke RS232 yang berguna buat komunikasi microcontroller AVR menggunakan komputer.
Berkaitan dengan software downloader, pada dasarnya anda dapat menggunakan aplikasi lain (pada luar CodeVisionAVR) untuk keperluan transfer kode mesin kedalam sistem memori microcontroller AVR. Salah satunya merupakan ISP_AVR yg dibentuk sang Holger Buss serta Ingo Busker berdasarkan Jerman. Perangkat lunak beserta rangkaian antarmukanya bisa pada-download secara perdeo dalam alamat URL: //www.mikrocontroller.com
MIKROKONTROLER AVR DAN BAHASA C
Tak bisa disangkal, dewasa ini penggunaan bahasa pemrograman aras tinggi (seperti C, Basic, Pascal dan sebagainya) semakin populer serta banyak dipakai buat memprogram sistem microcontroller. Berdasarkan sifatnya yang sangat fleksibel pada hal keleluasaan pemrogram buat mengakses perangkat keras, Bahasa C merupakan bahasa pemrograman yg paling cocok dibandingkan bahasa-bahasa pemrograman aras tinggi lainnya.
Dikembangkan pertama kali oleh Dennis Ritchie dan Ken Thomson dalam tahun 1972, Bahasa C merupakan galat satu bahasa pemrograman yg paling terkenal buat pengembangan program-acara pelaksanaan yang berjalan pada sistem microprocessor (komputer). Karena kepopulerannya, vendor-vendor perangkat lunak lalu mengembangkan compiler C sehingga menjadi beberapa varian berikut: Turbo C, Borland C, Microsoft C, Power C, Zortech C dan lain sebagainya. Untuk menjaga portabilitas, compiler-compiler C tersebut menerapkan ANSI C (ANSI: American National Standards Institute) menjadi standar bakunya. Perbedaan antara compiler-compiler tadi umumnya hanya terletak dalam pengembangan fungsi-fungsi library dan fasilitas IDE (Integrated Development Environment)–nya saja.
Relatif dibandingkan menggunakan bahasa aras tinggi lain, bahasa C merupakan bahasa pemrograman yg sangat fleksibel dan nir terlalu terikat dengan banyak sekali aturan yg sifatnya kaku. Satu-satunya hal yg membatasi penggunaan bahasa C dalam sebuah pelaksanaan adalah semata-mata kemampuan imaginasi programmer-nya saja. Sebagai gambaran, pada program C kita dapat saja secara bebas menjumlahkan karakter huruf (misal ‘A’) menggunakan sebuah sapta bulat (misal ‘dua’), dimana hal yang sama nir mungkin dapat dilakukan menggunakan menggunakan bahasa aras tinggi lainnya. Lantaran sifatnya ini, sering bahasa C dikatagorikan sebagai bahasa aras menengah (mid level language).
Dalam kaitannya menggunakan pemrograman microcontroller, Tak pelak lagi bahasa C waktu ini mulai menggeser penggunaan bahasa aras rendah assembler. Penggunaan bahasa C akan sangat efisien terutama buat program microcontroller yang berukuran nisbi akbar. Dibandingkan dengan bahasa assembler, penggunaan bahasa C dalam pemrograman mempunyai beberapa kelebihan berikut: Mempercepat ketika pengembangan, bersifat modular dan terstruktur, sedangkan kelemahannya adalah kode acara output kompilasi akan relative lebih besar (serta sebagai konsekuensinya hal ini terkadang akan mengurangi kecepatan eksekusi).
Khusus dalam microcontroller AVR, buat mereduksi konsekuensi negative diatas, Perusahaan Atmel merancang sedemikian sehingga arsitektur AVR ini efisien pada mendekode serta mengeksekusi instruksi-instruksi yg umum dibangkitkan oleh compiler C (Dalam kenyataannya, pengembangan arsitektur AVR ini tidak dilakukan sendiri oleh perusahaan Atmel namun terdapat kolaborasi dengan galat satu vendor pemasok compiler C buat microcontroller tersebut, yaituI ARC).
Seperti halnya compiler C buat sistem microprocessor, di pasaran ada beberapa varian compiler C buat memprogram sistem microcontroller AVR yang dapat dijumpai (lihat tabel 2.dua).
Dengan beberapa kelebihan yg dimilikinya, saat ini CodeVisionAVR produk Perusahaan Pavel Haiduc merupakan compiler C yang relative poly dipakai dibandingkan compiler-compiler C lainnya.
Bahasa C sudah dikritisi secara meluas, serta banyak orang dengan cepat menemukan masalahnya. Tapi sebagai bahasa yg telah hadir, C permanen tidak tersentuh. CodeVisionAVR adalah galat satu yang memanfaatkan keunggulan C dalam hal pemrograman mikrokontroler. Salah satu ungkapan menyatakan bahwa “jika kamu membuat perangkat lunak yg akan tetap layak suatu hari nanti, jangan belajar bahasa yang popular ketika ini, pelajarilah C”.
C tidak membatasi pandangan orang mengenai sebuah bahasa pemrograman. C nir object oriented, namun kita dapat menerapkan konsep objek oriented padanya. Bukan pula bahasa fungsional, tetapi kita dapat dapat menerapkan pemrograman fungsional menggunakannya. Kebanyakan interpreter LISP serta skema interpreters-interpreters/compiler-kompiler ditulis menggunakan menggunakan C. Kita dapat memproses list menggunakan C, meski tak semudah menggunakan LISP. C jua mempunyai fitur-fitur tambahan seperti rekursi, mekanisme sebagai tipe data kelas pertama, serta poly lagi.
Banyak orang yang mencicipi C kekurangan akan kemudahan seperti JAVA, atau C++. Padahal C merupakan bahasa yg sederhana. Tapi lantaran kesederhanaan ini dianggap kurang memadai sebagai akibatnya membuat C diubahsuaikan menjadi ta’aruf pertama ke tahap bahasa taraf tinggi yang kompleks yg memungkinkan kita mengontrol dengan baik apa yang kita acara tanpa fitur yang disembunyikan. Compiler tidak akan melakukan apapun hingga kita memerintahkan buat melakukan sesuatu. Bahasa yang terdapat adalah transparan, bahkan bila beberapa fitur menurut JAVA seperti garbage collection diikutsertakan dalam implementasi C yang akan digunakan. Sebagai bahasa pemrograman, C tetap terdapat. Ini adalah inti menurut development dilingkungan system operasi UNIX. Dan jua inti menurut revolusi mikrokomputer, diantara C++, Delphi, JAVA serta lainnya, C masih tetap bertahan,dengan karakteristiknya sendiri.
Pada beberapa tahun yang kemudian, the Electrical and Computer Engineering Technology department di Purdue University telah mempelajai bahasa pemrograman C sebagai bahasa yang dipilih buat mengenalkan mikrokontroler. Mengajarkan Bahasa taraf tinggi dalam ta’aruf mikrokontroler dalam referensi suatu bahasa taraf assembly merupakan sesuatu yg paradoksal pada suatu intitusi yg memiliki acara yang sama. Penggunaan Bahasa taraf tinggi memungkinkan buat focus dalam materi dan konsep dan tidak jemu menggunakan melihat lebih jelasnya listing assembly. Salah satu perbedaannya merupakan bahasa tingkat tinggi memungkinkan buat menuliskan eksklusif nilai pada register, memindahkan data melalui multiple operations dengan assembly.
Just-in-time (JIT) mengajarkan metode yang digunakan buat mengenalkan komponen baru dalam Bahasa pemrograman C seperti yg diharapkan. Pada prakteknya pokok masalah dipresentasikan, selesainya itu disusun prosedur pemecahan serta dievaluasi. Setelah itu dituangkan kedalam gambar sebagai diagram alir proses. Lalu menggunakan mudah diterjemahkan kedalanm bahasa C. Misalnya itulah dasar menurut mikrokontroler.
Lebih menurut 10 tahun, beratus juta mikrokontroler, suatu mikrokomputer yang mengandung perangkat ini dan memori didalam suatu single integrated circuit (IC) beserta CPU, sudah disertakan pada perkembangan produk-produk dari keyboard hingga system control automobile (Ayala, 2000).
Bahasa taraf tinggi semakin tinggi sebagai metodologi baku buat mikrokontroler terapan berdasar dalam perkembangan dan improvisasi jaman dan pasar serta dukungan perawatan yang sederhana (Myklebust, N.D.). Untuk permanen sejajar menggunakan perubahan jaman, bahasa tingkat tinggi menjadi perlengkapan pada memperkenalkan mikrokontroler sebagai bagian berdasarkan kurikulum dalam the Electrical and Computer Engineering Technology curriculum pada Purdue University, West Lafayette.
KEUNTUNGAN PEMROGRAMAN TINGKAT TINGGI
Telah dipercaya pada era mikrokontroler ketika ini bahwa bahasa assembly adalah satu-satunya pilihan buat menciptakan kode untuk suatu pelaksanaan.ruang yg sangat terbatas pada chip buat data dank ode program tidak terjadi apabila menggunakan bahasa tingkat tinggi (Stewart & Miao, 1999). Sejarah bahasa tingkat tinggi menghasilkan berukuran kode yang lebih besar dibandingkan assembly yang mempengaruhi kecepatan eksekusi. Selama beberapa tahun terakhir, compiler sudah menyatakan kepada pasar menggunakan menjamin bahwa bisa menghasilkan kode seefisien assembly (Stewart & Miao, 1999).pada tahun-tahun berikutnya, compiler melakukan perkembangan yang lebih luas didunia mikrokontroler dengan menaikkan fungsionalitas serta kecepatan.
Terdapat beberapa keunggulan menggunakan Bahasa tingkat tinggi antara lain yaitu bisa memangkas saat pembangunan aplikasi menjadi lebih singkat, kemudahan perawatan serta ringkas, kemudahan reuse kode. Bahasa tingkat tinggi memungkinkan programmer buat mengatasi objek yang kompleks tanpa khawatir mengenai lebih jelasnya komponen prosesor dalam ketika acara berjalan. (Darnell & Margolis, 1991). Menulis program bahasa taraf tinggi membebaskan programmer menurut kekhawatiran tentang lebih jelasnya taraf rendah suatu acara (Reisdorph, 1998).
PEMROGRAMAN C DAN MIKROKONTROLER
Pembangunan Perangkat lunak menggunakan mikrokontroler membutuhkabn suatu pendekatan terstruktur dengna pemrograman. Banyak system terapan wajib berjalan 24 jam sehari, 7 hari pada satu minggu, dan 365 pada satu tahun. Mereka tidak bisa di reboot ketika terjadi sesuatu kwesalahan. Untuk alas an ini, baris kode yang baik dipelajari dan melalui ujicoba menghasilkan taraf keutamaan yg baru pada fenomena mikrokontroler terapan (Lewis, 2002). Fasilitas bahasa C yang terstruktur dan disiplin(utuh) menjadi pendekatan pada design program computer (Deitel & Deitel, 1992). Berdasar dalam MacKenzie, keuntungan mengadopsi pendekatan terstruktur pada pemrograman meliputi antara lain: urutan operasi suatu program begitu sederhana buat ditelusuri melalui fasilitas debugging, urutannya yang terstruktur membuat gampang buat dijadikan sub rutin atau fungsi-fungsi, struktur yg ada sebagai dokumentasi sendiri serta memudahkan buat mengungkapkan memakai diagram alir, dan pemrograman yg terstruktur membentuk peningkatan produktifitas programer (1991).
Mungkin alasan yg paling memaksa buat memakai bahasa taraf tinggi adalah menyimpan ketika programmer. Compiler C didukung oleh pustaka(library) acara C yang mengusung banyak fitur seperti matematika dan penanganan karakter. Menggunakan fungsi standar ini program-program Cmemudahkan programmer buat menulis, menguji coba serta mereka ulang versi yg sama (Ayala, 2000). Meskipun pustaka fungsi baku adalah teknikal bukan bagian menurut bahasa C, mereka didukaung tanpa terkecuali oleh system ANSI milik C (Deitel & Deitel, 1992).