RSS

Arduino Code, Optimalisasi VS Generalisasi

06 Des

Pada Arduino ekosistem, keunggulan utamanya adalah kemudahan penggunaannya. Hal ini disebabkan code-codenya ditulis untuk menyembunyikan kerumitan hardware dari microcontroller yang digunakan. Code-code dibuat general (umum), sehingga bisa dipakai untuk tipe microcontroller yang berbeda, walaupun masih satu keluarga yaitu microcontroller AVR dari Atmel.

Code-code general ini membuat microcontroller lebih lama dalam mengerjakan suatu perintah. Contohnya: digitalWrite(pin, mode) yang source codenya ada di file Folder_instalasi_arduino\hardware\arduino\cores\arduino\wiring_digital.c. Jauh lebih cepat jika kita mengakses register microcontrollernya secara langsung. Misalnya: sbi(PORTG,7) artinya PORTG7 = HIGH. Namun dengan mengakses langsung register microcontroller, kita susah membuat code menjadi general karena belum tentu microcontroller lain memiliki register PORTG. Dan kita tidak bisa memakai mapping I/O dari arduino.

Dalam situasi tertentu dibutuhkan optimalisasi code-code agar microcontroller menjalankan code-code tersebut lebih cepat. Misalnya untuk menangani kejadian yang terjadi sangat singkat dan butuh respon yang cepat. Umumnya pada rutin interrupt atau deteksi sinyal yang lebar pulsanya sempit atau sinyal keluaran yang lebar pulsanya sempit, dan sebagainya. Jika dalam cara-cara “biasa”, arduino kita kurang responsif atau kurang cepat kita bisa melakukan optimalisasi code tentu dengan pengorbanan yang saya sebutkan tadi. Selain dengan cara mengakses register secara langsung, optimalisasi bisa dilakukan dengan menggabungkan bahasa assembler ke C/C++.

Jika Anda banyak menemukan situasi yang membutuhkan optimalisasi code, ada baiknya Anda beralih ke WinAVR atau AtmelStudio. Untuk produksi masal juga perlu dipertimbangkan penggunaan WinAVR atau AtmelStudio, sehingga Anda bisa memakai microcontroller yang lebih murah (Flash memorinya lebih kecil). Namun jika dengan cara-cara optimalisasi bahkan dengan penggunaan bahasa assembler secara keseluruhan masih kurang cepat, itu tandanya Anda membutuhkan microcontroller yang lebih cepat. Microcontroller 32 bit umumnya sudah cukup murah dari produsennya, namun karena kurang populer di Indonesia maka harganya menjadi tinggi.

Iklan
 
Tinggalkan komentar

Ditulis oleh pada 6 Desember 2013 in Arduino, Uncategorized

 

Tag:

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

 
%d blogger menyukai ini: