close

Pemahaman Codevisionavr

Pengertian CodeVisionAVR 
CodeVisionAVR pada dasarnya ialah perangkat lunak pemrograman microcontroller keluarga AVR berbasis bahasa C. Ada tiga bagian penting yang telah diintegrasikan dalam perangkat lunak ini: Compiler C, IDE dan Program generator. 
Berdasarkan spesifikasi yang dikeluarkan oleh perusahaan pengembangnya, Compiler C yang dipakai nyaris mengimplementasikan semua komponen standar yang ada pada bahasa C standar ANSI (seperti struktur program, jenis tipe data, jenis operator, dan library fungsi patokan-berikut penamaannya). Tetapi meskipun demikian, dibandingkan bahasa C untuk aplikasi komputer, compiler C untuk microcontroller ini mempunyai sedikit perbedaan yang disesuaikan dengan arsitektur AVR daerah acara C tersebut ditanamkan (embedded). 
Khusus untuk library fungsi, disamping library tolok ukur (seperti fungsi-fungsi matematik, manipulasi String, pengaksesan memori dan sebagainya), CodeVisionAVR juga menyediakan fungsi-fungsi tambahan yang sangat bermanfaat dalam pemrograman antarmuka AVR dengan perangkat luar yang biasa dipakai dalam aplikasi kendali. Beberapa fungsi library yang penting diantaranya ialah fungsi-fungsi untuk pengaksesan LCD, komunikasi I2C, IC RTC (Real time Clock), sensor suhu LM75, SPI (Serial Peripheral Interface) dan lain sebagainya. 
Untuk memudahkan pengembangan acara aplikasi, CodeVisionAVR juga dilengkapi IDE yang sungguh user friendly (lihat gambar 1.1). Selain sajian-sajian pilihan yang umum dijumpai pada setiap perangkat lunak berbasis Windows, CodeVisionAVR ini sudah mengintegrasikan perangkat lunak downloader (in system programmer) yang dapat dipakai untuk mentransfer isyarat mesin hasil kompilasi kedalam metode memori microcontroller AVR yang sedang deprogram.
CodeVisionAVR 1.2.4.9 yaitu sebuah kompiler berbasis bahasa C, yang terintegrasi untuk memprogram dan sekaligus compiler aplikasi AVR (Alf and Vegard’s Risc processor) terhadap mikrokontroler dengan tata cara berbasis window. CodeVisionAVR ini dapat mengimplematasikan hampir semua interuksi bahasa C yang tepat dengan arsitektur AVR, bahkan terdapat beberapa keunggulan pemanis untuk memenuhi kelebihan spesifikasi dari CodeVisionAVR adalah hasil kompilasi studio debugger dari ATMEL. 
Integrated Development Environtment (IDE) telah diadaptasikan pada chip AVR yakni In-System Programmer software, memungkinkan programmer untuk mentransfer program ke chip mikrokontroler secara otomatis setelah proses assembly/kompilasi berhasil. In-System Programmer software didesign untuk melakukan pekerjaan dan dapat berjalan dengan perangkat lunak lain seperti AVR Dragon, AVRISP, Atmel STK500, dan lain sebagainya.
Disamping library patokan C, CodeVisionAVR C compiler memiliki librari lain untuk:
  • Modul LCD Alpanumerik
  • Delays
  • Protokol semikonduktor Maxim/Dallas
  • Dan yang lain
CodeVisionAVR juga memiliki CodeWizardAVR sebagaki generator acara otomatis, yang memungkinkan kita untuk menulis, segala bentuk pengaturan Chip dalam waktu singkat, dan semua aba-aba yang diharapkan untuk mengimplementasikan fungsi-fungsi mirip:
Pengaturan terusan External Memory
Untuk chip-chip AVR yang memungkinkan koneksi memori eksternal SRAM, dapat juga menertibkan ukuran memori dan wait state (tahap tunggu) dari memori dikala memori tersebut diakses.
Identifikasi chip reset source
Adalah suatu layanan dimana kita dapat menciptakan instruksi secara otomatis yang dapat mengidentifikasi kondisi yang menyebabkan chip di reset.
Inisialisasi port input/output
Pengaturan port-port yang kan dijadikan gerbang masukan dan keluaran dapat secara otomatis digenerate codenya. Yang kita kerjakan hanya menentukan port-port yang hendak digunakan sebagai input atau output.
Inisialisasi Interupsi external
Pengaturan interupsi eksternal yang nantinya akan digunakan untuk menginterupsi program utama 
Inisialisasi timers/counters
Pengaturan timers yang berfungsi untuk menertibkan frekwensi yang nantinya digunakan pada interupsi.
Inisialisasi timer watchdog
Pengaturan timers yang berfungsi untuk mengatur frekwensi yang nantinya digunakan pada interupsi, sehingga interupsi akan dilayani oleh suatu fungsi wdt_timeout_isr .
Inisialisasi UART(USART) dan komunuikasi serial 
Pengaturan komunikasi serial selaku peserta atau pengantardata.
Inisialisasi komparasi analog
Pengaturan yang berkaitan dengan masukan data yang dipakai dalam aplikasi yang memerlukan komparasi pada ADC nya.
Inisialisasi ADC
Pengaturan ADC(Analog-Digital Converter) yang berfungsi untuk mengganti format analog menjadi format digital untuk dimasak lebih lanjut.
Inisialisasi antarmuka SPI
Pengaturan chip yang berhubungan dengan Clock rate, Clock Phase, dan yang lain.
Inisialisasi antarmuka Two Wire BUS
Pengaturan Chip yang bekerjasama dengan teladan jalur komunikasi antara register yang terdapat pada chip AVR. 
Inisialisasi antarmuka CAN
Pengaturan chip yang lebih kompleks, yang dapat menertibkan interupsi, transmisi data, timers, dan yang lain.
Inisialisasi sensor temperatur, thermometer, dan yang lain
Pengaturan yang bekerjasama dengan sensor temperatur one wire bus, mempunyai fungsi-fungsi yang ada pada librari CodeVisionAVR.
Inisialisasi one wire bus
Pengaturan yang berafiliasi dengan sensor temperatur yang memiliki fungsi-fungsi yang ada pada librari CodeVisionAVR. Seperti Maxim/Dallas Semiconductor.
Inisialisasi modul LCD
Pengaturan port-port yang kan digunakan selaku penghubung dengan LCD alphanumerik.
Contoh cara kerja sebelum melaksanakan pemograman di AVR, dimana pola disini ialah teladan pengaturan acara agar mikrokontroler mampu berkomunikasi dengan komputer:
a. Memilih project baru dan melakukan penyetingan bagian yang digunakan pada board.
b. Pengaturan IC/Chip, pada chip yang kita harus dijalankan ialah IC apa yang kita gunakan, dalam hal ini ATMEGA8535l dengan Clock 16 MHz. Clock ini harus di atur dengan ukuran 16 MHz, karena pada bagian oksilator yang dipakai sebesar 16 MHz. 
c. Pengaturan ADC, pada ADC ini ada beberapa pilihan yang mesti diseleksi. diantaranya ADC Enable di check list(v), Use 8 bit di check list(v), high speed di check list (v) dan Volt Ref diseleksi ‘AVCC PIN’. AVCC PIN memiliki kegunaan sebagai referensi tegangan pada ADC untuk nilainya sebesar 5 volt.
d. Pengaturan USART, usart ini yang nantinya menghubungkan rangkaian mikrokontroler dengan PC (komputer). Langkah-langkah yang dijalankan dengan adanya opsi Receiver di check list(v) dan Transmitter di check list(v). Pengaturan receiver berfungsi apakah serial itu sebagai peserta data, sedangkan transmitter berfungsi serial mampu dipakai selaku pengiriman data.
Untuk lebih jelas penampilan pengaturan yang ditawarkan oleh AVR mampu dilihat pada gambar dibawah ini :
Gambar Form Pegaturan CodeVisionAVR
Selain bentuk konfigurasi hadware yang nantinya secara otomatis akan membentuk sebuah aba-aba layaknya perintah program ke IC/Chip, adapula perintah acara yang kita ketik sendiri. 
Selain itu, CodeVisionAVR juga menawarkan suatu tool yang dinamakan dengan Code Generator atau CodeWizardAVR (lihat gambar 2.1). Secara mudah, tool ini sangat berfaedah membentuk suatu kerangka program (template), dan juga memberi fasilitas bagi programmer dalam peng-inisialisasian register-register yang terdapat pada microcontroller AVR yang sedang diprogram. Dinamakan Code Generator, karena perangkat lunak CodeVision ini akan membangkitkan kode-kode program secara otomatis sehabis fase inisialisasi pada jendela CodeWizardAVR simpulan dilaksanakan. Secara teknis, penggunaan tool ini pada dasarnya hampir sama dengan application wizard pada bahasa-bahasa pemrograman Visual untuk komputer (mirip Visual C, Borland Delphi, dan sebagainya).
Disamping model yang komersil, Perusahaan Pavel Haiduc juga mengeluarkan CodeVisionAVR model Demo yang dapat didownload dari internet secara gratis (lihat alamat URL: http://www.hpinfotech.ro) Dalam versi ini, memori flash yang dapat diprogram dibatasi optimal 2K, selain itu tidak semua fungsi library yang tersedia dapat diundang secara bebas.
Seperti halnya belajar pemrograman komputer, biar mendapatkan pemahaman yang besar lengan berkuasa dalam pemrograman microcontroller AVR, anda sebaiknya menjajal pribadi menciptakan aplikasi program pada microcontroller tersebut. Untuk tujuan latihan, perangkat lunak CodevisionAVR versi demo pada dasarnya yaitu fasilitas yang cocok dan sudah cukup memenuhi keperluan sekurang-kurangnyaanda. Gambar 1.4. berikut memberikan diagram blok yang mengilustrasikan alur pemrograman microcontroller AVR dengan CodevisionAVR yang dapat anda kerjakan :
Gambar  Alur pemrograman microcontroller AVR dengan memakai CodevisionAVR
Seperti tampakpada gambar 2.2, CodevisionAVR intinya telah mengintegrasikan bagian-bagian penting dalam pemrograman microcontroller AVR: Editor,Compiler C, assembler dan ISP (In System Programmer). Khusus dengan ISP, ada beberapa jenis perangkat keras programmer dongle (berikut papan pengembangnya) yang telah didukung oleh perangkat lunak CodevisionAVR ini, salah satu diantaranya adalah Kanda System STK 200/300 produk Perusahaan Kanda yang terhubung pada saluran antarmuka port Paralel Komputer. 
Jika anda berniat menciptakan dongle yang kompatible dengan produk Kanda, rangkaiannya dapat dilihat pada situs:http:\\www.grandtonics.com. Atau bila mau berbelanja metode yang siap pakai (berbentukdongle beserta papan pengembangnya), salah satu produk dalam negeri dengan harga yang relative murah adalah DT AVR nano/micro System dialamat URL:http//www.innovative_electronic.com., Sistem ini kompatibel dengan kanda System STK 200/300. Untuk tujuan-tujuan percobaan, produk innovative_electronic ini sudah sangat mencukupi, selain mudah dihubungkan dengan modul-modul perangkat input/output, seperti modul LCD, keypad, array LED, aktivis motor stepper, dan sebagainya, metode ini juga sudah dilengkapi konverter TTL ke RS232 yang berguna untuk komunikasi microcontroller AVR dengan komputer. 
Berkaitan dengan perangkat lunak downloader, intinya anda dapat menggunakan perangkat lunak lain (di luar CodeVisionAVR) untuk kebutuhan transfer kode mesin kedalam metode memori microcontroller AVR. Salah satunya ialah ISP_AVR yang dibentuk oleh Holger Buss dan Ingo Busker dari Jerman. Perangkat lunak beserta rangkaian antarmukanya dapat di-download secara gratis pada alamat URL: http://www.mikrocontroller.com
MIKROKONTROLER AVR DAN BAHASA C
Tak mampu dibantah, dewasa ini penggunaan bahasa pemrograman aras tinggi (seperti C, Basic, Pascal dan sebagainya) semakin terkenal dan banyak dipakai untuk memprogram sistem microcontroller. Berdasarkan sifatnya yang sungguh fleksibel dalam hal kelonggaran pemrogram untuk mengakses perangkat keras, Bahasa C ialah bahasa pemrograman yang paling cocok dibandingkan bahasa-bahasa pemrograman aras tinggi yang lain. 
Dikembangkan pertama kali oleh Dennis Ritchie dan Ken Thomson pada tahun 1972, Bahasa C ialah salah satu bahasa pemrograman yang paling terkenal untuk pengembangan program-acara aplikasi yang berlangsung pada sistem microprocessor (komputer). Karena kepopulerannya, vendor-vendor perangkat lunak lalu berbagi compiler C sehingga menjadi beberapa varian berikut: Turbo C, Borland C, Microsoft C, Power C, Zortech C dan lain sebagainya. Untuk mempertahankan portabilitas, compiler-compiler C tersebut menerapkan ANSI C (ANSI: American National Standards Institute) selaku kriteria bakunya. Perbedaan antara compiler-compiler tersebut umumnya hanya terletak pada pengembangan fungsi-fungsi library serta akomodasi IDE (Integrated Development Environment)–nya saja. 
Relatif ketimbang bahasa aras tinggi lain, bahasa C merupakan bahasa pemrograman yang sangat fleksibel dan tidak terlampau terikat dengan aneka macam hukum yang sifatnya kaku. Satu-satunya hal yang membatasi penggunaan bahasa C dalam suatu aplikasi adalah semata-mata kesanggupan imaginasi programmer-nya saja. Sebagai ilustrasi, dalam program C kita dapat saja secara bebas menjumlahkan huruf karakter (misal ‘A’) dengan suatu bilangan lingkaran (misal ‘2’), dimana hal yang serupa tidak mungkin mampu dilaksanakan dengan menggunakan bahasa aras tinggi yang lain. Karena sifatnya ini, terkadang bahasa C dikatagorikan sebagai bahasa aras menengah (mid level language).
Dalam kaitannya dengan pemrograman microcontroller, Tak pelak lagi bahasa C dikala ini mulai menggeser penggunaan bahasa aras rendah assembler. Penggunaan bahasa C akan sungguh efisien utamanya untuk acara microcontroller yang berskala relatif besar. Dibandingkan dengan bahasa assembler, penggunaan bahasa C dalam pemrograman memiliki beberapa keunggulan berikut: Mempercepat waktu pengembangan, bersifat modular dan terorganisir, sedangkan kelemahannya yakni isyarat program hasil kompilasi akan relative lebih besar (dan selaku konsekuensinya hal ini kerap kali akan menghemat kecepatan hukuman). 
Khusus pada microcontroller AVR, untuk mereduksi konsekuensi negative diatas, Perusahaan Atmel merancang sedemikian sehingga arsitektur AVR ini efisien dalam mendekode serta mengeksekusi isyarat-arahan yang umum dibangkitkan oleh compiler C (Dalam kenyataannya, pengembangan arsitektur AVR ini tidak dijalankan sendiri oleh perusahaan Atmel namun ada kerja sama dengan salah satu vendor pemasok compiler C untuk microcontroller tersebut, yaituI ARC).
Seperti halnya compiler C untuk tata cara microprocessor, di pasaran ada beberapa varian compiler C untuk memprogram tata cara microcontroller AVR yang mampu dijumpai (lihat tabel 2.2). 
Dengan beberapa keunggulan yang dimilikinya, saat ini CodeVisionAVR produk Perusahaan Pavel Haiduc merupakan compiler C yang relative banyak digunakan dibandingkan compiler-compiler C yang lain. 
Bahasa C telah dikritisi secara meluas, dan banyak orang dengan segera menemukan masalahnya. Tapi selaku bahasa yang telah hadir, C tetap tak tersentuh. CodeVisionAVR ialah salah satu yang memanfaatkan keunggulan C dalam hal pemrograman mikrokontroler. Salah satu perumpamaan menyatakan bahwa “kalau kau menciptakan perangkat lunak yang hendak tetap pantas sebuah hari nanti, jangan berguru bahasa yang popular ketika ini, pelajarilah C”.
C tidak menghalangi pandangan orang perihal sebuah bahasa pemrograman. C tidak object oriented, tetapi kita mampu menerapkan rancangan objek oriented padanya. Bukan juga bahasa fungsional, tetapi kita mampu mampu menerapkan pemrograman fungsional menggunakannya. Kebanyakan interpreter LISP dan sketsa interpreters-interpreters/compiler-kompiler ditulis dengan menggunakan C. kita dapat memproses list memakai C, meski tak semudah memakai LISP. C juga memiliki fitur-fitur komplemen seperti rekursi, mekanisme sebagai tipe data kelas pertama, dan banyak lagi. 
Banyak orang yang mencicipi C kelemahan akan akomodasi mirip JAVA, atau C++. Padahal C adalah bahasa yang sederhana. Tapi alasannya kesederhanaan ini dianggap kurang mencukupi sehingga membuat C diadaptasi sebagai perkenalan pertama ke tahap bahasa tingkat tinggi yang kompleks yang memungkinkan kita menertibkan dengan baik apa yang kita acara tanpa fitur yang disembunyikan. Compiler tidak akan melaksanakan apapun sampai kita menyuruh untuk melaksanakan sesuatu. Bahasa yang ada adalah transparan, bahkan kalau beberapa fitur dari JAVA seperti garbage collection diikutsertakan pada implementasi C yang hendak digunakan. Sebagai bahasa pemrograman, C tetap ada. Ini adalah inti dari development dilingkungan system operasi UNIX. Dan juga inti dari revolusi mikrokomputer, diantara C++, Delphi, JAVA dan 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 selaku bahasa yang dipilih untuk mengenalkan mikrokontroler. Mengajarkan Bahasa tingkat tinggi pada perkenalan mikrokontroler dalam referensi sebuah bahasa tingkat assembly yakni sesuatu yang kontras pada suatu intitusi yang memiliki program yang sama. Penggunaan Bahasa tingkat tinggi memungkinkan untuk focus pada materi dan konsep dan tidak jemu dengan menyaksikan detail listing assembly. Salah satu perbedaannya yakni bahasa tingkat tinggi memungkinkan untuk menuliskan pribadi nilai pada register, memindahkan data lewat multiple operations dengan assembly.
Just-in-time (JIT) mengajarkan metode yang dipakai untuk mengenalkan bagian baru pada Bahasa pemrograman C mirip yang diperlukan. Pada prakteknya pokok problem dipresentasikan, sehabis itu disusun algoritma dan dievaluasi. Setelah itu dituangkan kedalam gambar selaku diagram alir proses. Lalu dengan mudah diterjemahkan kedalanm bahasa C. mirip itulah dasar dari mikrokontroler.
Lebih dari 10 tahun, beratus juta mikrokontroler, suatu mikrokomputer yang mengandung perangkat ini dan memori didalam suatu single integrated circuit (IC) bersama CPU, telah disertakan pada kemajuan produk-produk dari keyboard sampai system control automobile (Ayala, 2000). 
Bahasa tingkat tinggi berkembangmenjadi metodologi patokan untuk mikrokontroler terapan berdasar pada perkembangan dan improvisasi jaman dan pasar dan bantuan perawatan yang sederhana (Myklebust, N.D.). Untuk tetap sejajar dengan pergantian jaman, bahasa tingkat tinggi menjadi peralatan dalam memperkenalkan mikrokontroler sebagai bab dari kurikulum pada the Electrical and Computer Engineering Technology curriculum di Purdue University, West Lafayette.
KEUNTUNGAN PEMROGRAMAN TINGKAT TINGGI
Telah dipercaya pada masa mikrokontroler dikala ini bahwa bahasa assembly yaitu satu-satunya opsi untuk membuat instruksi untuk suatu aplikasi.ruang yang sungguh terbatas pada chip untuk data dank ode acara tidak terjadi jikalau memakai bahasa tingkat tinggi (Stewart & Miao, 1999). Sejarah bahasa tingkat tinggi memproduksi ukuran aba-aba yang lebih besar dibandingkan assembly yang mensugesti kecepatan eksekusi. Selama beberapa tahun terakhir, compiler telah menyatakan kepada pasar dengan mengklaim bahwa dapat memproduksi isyarat seefisien assembly (Stewart & Miao, 1999).pada tahun-tahun selanjutnya, compiler melakukan perkembangan yang lebih luas didunia mikrokontroler dengan memajukan fungsionalitas dan kecepatan.
Terdapat beberapa kelebihan memakai Bahasa tingkat tinggi diantaranya yaitu mampu memotong waktu pembangunan aplikasi menjadi lebih singkat, kemudahan perawatan dan ringkas, kemudahan reuse kode. Bahasa tingkat tinggi memungkinkan programmer untuk menangani objek yang kompleks tanpa cemas ihwal rincian bagian prosesor pada dikala program berlangsung. (Darnell & Margolis, 1991). Menulis acara bahasa tingkat tinggi membebaskan programmer dari kegundahan wacana detail tingkat rendah suatu program (Reisdorph, 1998).
PEMROGRAMAN C DAN MIKROKONTROLER
Pembangunan Perangkat lunak dengan mikrokontroler membutuhkabn suatu pendekatan terorganisir dengna pemrograman. Banyak system terapan mesti berjalan 24 jam sehari, 7 hari dalam satu minggu, dan 365 dalam satu tahun. Mereka tidak dapat di reboot ketika terjadi sesuatu kwesalahan. Untuk alas an ini, baris arahan yang baik dipelajari dan lewat ujicoba menghasilkan tingkat keistimewaan yang gres pada realita mikrokontroler terapan (Lewis, 2002). Fasilitas bahasa C yang teratur dan disiplin(utuh) menjadi pendekatan pada design program computer (Deitel & Deitel, 1992). Berdasar pada MacKenzie, keuntungan mengadopsi pendekatan teratur pada pemrograman meliputi diantaranya: urutan operasi suatu acara begitu sederhana untuk ditelusuri melalui kemudahan debugging, urutannya yang terencana menciptakan mudah untuk dijadikan sub berkala atau fungsi-fungsi, struktur yang ada menjadi dokumentasi sendiri dan mempermudah untuk menerangkan memakai diagram alir, dan pemrograman yang terstruktur menciptakan kenaikan produktifitas programer (1991).
Mungkin alasan yang paling memaksa untuk memakai bahasa tingkat tinggi adalah menyimpan waktu programmer. Compiler C disokong oleh pustaka(library) program C yang mengusung banyak fitur seperti matematika dan penanganan huruf. Menggunakan fungsi patokan ini program-acara Cmemudahkan programmer untuk menulis, menguji coba dan mereka ulang versi yang serupa (Ayala, 2000). Meskipun pustaka fungsi tolok ukur ialah teknikal bukan bab dari bahasa C, mereka didukaung tanpa terkecuali oleh system ANSI milik C (Deitel & Deitel, 1992).