Trik Mengurangi Ukuran Program Arduino

Dipublikasikan oleh Admin pada

Pernahkah pembaca mengalami ukuran program Arduino yang dibuat ternyata melebihi kapasitas chip?

Kadang-kadang kita perlu untuk menambahkan banyak modul tambahan pada Arduino, akibatnya akan semakin banyak pula library di-include dalam sketch yang kita buat dan ukuran program Arduino menjadi semakin besar.

Arduino memang dirancang untuk memudahkan semua orang belajar pemrograman mikrokontroler, perintah-perintah AVR-C/C++ yang mungkin dirasa terlalu teknis, oleh Tim Developer Arduino disederhanakan menjadi fungsi-fungsi yang mudah diingat. Misalnya pinMode, digitalWrite, dsb.

Software Arduino IDE sendiri sebenarnya hanyalah sebuah editor dan tool memudahkan pengguna dalam menuliskan kode, meng-compile dan mengupload program ke chip AVR. Inti dari Arduino IDE adalah compiler AVR-C/C++ yang menggabungkan library-library Arduino dengan sketch yang kita buat dan kemudian melakukan compile dan link menjadi sebuah file .hex, setelah itu tugas diserahkan kepada AVRDude untuk mengupload file .hex tersebut ke board yang sudah dipilih.

Bagaimana Cara Menghemat Ukuran Program?

Mengingat bahwa Arduino menggunakan compiler AVR-C/C++, maka cara untuk menghemat ukuran program Arduino adalah dengan menggunakan langsung perintah PORT dan fungsi-fungsi dasar AVR-C/C++.

Mengapa harus menggunakan perintah dan fungsi dasar AVR-C/C++? Karena fungsi digitalWrite, dsb berisi perintah-perintah yang lebih panjang dibandingkan perintah PORT pada AVR-C/C++.

Mengenali Setiap Pin Chip Atmega328

Untuk dapat memprogram Arduino menggunakan perintah PORT, maka kita perlu mengetahui terlebih dahulu kegunaan pin-pin pada chip Arduino, pada tulisan ini kita bahas chip Atmega328 yang ada pada board Arduino Uno. Dengan mengetahui kegunaan setiap pin, nantinya kita akan bisa mengakses setiap PORT tanpa fungsi-fungsi bawaan Arduino.

Uji Coba Program Menghemat Ukuran

Dengan menggunakan gambar pinout Atmega328 di atas, kita akan coba membuktikan apakah menggunakan perintah-perintah dasar AVR-C/C++ dapat menghemat ukuran program Arduino.

Program Blink Arduino Normal

Pertama kita gunakan contoh blink Arduino yang ada pada example, buka dan compile.

Program Blink Arduino Hemat

Sekarang kita buat program blink menggunakan perintah dasar AVR-C/C++.

Pada contoh blink Arduino normal kita menggunakan pin 13. Kalau kita melihat pada gambar pinout, maka pin-13 itu sebenarnya adalah PORTB-5. Tulislah sketch berikut ini dan compile.

Hasilnya…

Program blink normal menggunakan space = 928 byte
Program blink menggunakan perintah dasar AVR-C/C++ = 176 byte

Selisih ukuran = 752 byte = 81%

Terbukti! Bahwa menggunakan perintah dasar AVR-C/C++ dan menghindari fungsi-fungsi bawaan Arduino dapat melakukan penghematan yang signifikan pada ukuran program Arduino.

Catatan

Penghematan cara ini mungkin berlaku pada board Arduino Uno saja, sebab pin-13 pada board lain mungkin belum tentu menggunakan PORTB-5. Selain itu contoh perbandingan ini hanya menggunakan contoh program blink. Pada program lain persentase penghematan belum tentu sama 81%, mungkin lebih kecil atau lebih besar tergantung kerumitan sketch nya. Akan tetapi dengan menggunakan perintah dasar AVR-C/++ dan mengurangi penggunaan fungsi-fungsi bawaan Arduino, dapat dipastikan akan mengurangi ukuran program Arduino.

Tulisan ini dibuat untuk pembaca yang ingin memaksimalkan kemampuan dalam menggunakan Arduino, oleh karena itu perlu memahami pemrograman C/C++ pada AVR. Semoga pada kesempatan berikutnya penulis dapat membahas pemrograman C/C++.

Selamat mencoba dan berkarya.

Topik hangat:

Kategori: Arduino