Selasa, 27 September 2011

AVR-C++ Bagian 1

Biasanya untuk memprogram Mikrokontroller digunakkan bahasa program C, Basic, ataupun Assembly. Namun, kebanyakan orang menggunakan C daripada C++ untuk memprogram AVR (Biasanya C++ digunakkan untuk aplikasi komputer),sebenarnya C++ itu sendiri merupakan hasil pengembangan dari C yang telah mendukung fasilitas OOP (Object Oriented Programming) dimana fasilitas tersebut tidak dimiliki oleh bahasa pemrograman C (sebenarnya masih bisa, tetapi mungkin terlalu kompleks untuk di implementasikan), banyak kelebihan-kelebihan dari menggunakkan C++ sebagai bahasa Pemrograman AVR yang nantinya InsyaAllah akan kami jelaskan pada bagian selanjutnya.

sebenarnya paket WinAVR telah terdapat fasilitas untuk mengCompile file .cpp, namun sering winAVR digunakkan dengan IDE AVR Studio yang secara default tidak menggunakkan compiler untuk C++, untuk mengakalinya agar bisa mengCompile file .cpp maka perlu merubah beberapa pengaturan yang terdapat pada AVR Studio, yaitu dengan mengubah compilernya dari avr-gcc menjadi avr-c++, dengan cara klik Project>Configuration Option>Custom Option, hilangkan tanda centang pada use winAVR, isikan avr-gcc dengan direktori avr-c++, dan pada kolom make isikan seperti aturan awal tadi, lebih jelasnya seperti gambar dibawah,

Setelah pengaturan selesai, buat file .c pada project, meskipun file ber extensi .c tetapi dengan menggunakkan avr-c++ maka file tersebut tetap dianggap sebagai file .cpp.

langkah selanjutnya ialah mencoba memprogram c++ untuk mengetahui apakah pengaturan sudah benar atau belum, tuliskan source code sebagai berikut,
#include <stdio.h>
#include <avr/io.h>
#include <util/delay.h>
#define F_CPU 1000000UL

class kuu{
    public:
        kuu();
        void ledTogle();
    private:
        int a;
};
kuu::kuu(){
    DDRB=0xff;
    a=1;
}
void kuu::ledTogle(){
    if(a==1){
    PORTB=0xf0;
    a=0;
    }
    else{
    PORTB=0x0f;
    a=1;
    }
}
int main(){
kuu kii;
while(1){
    kii.ledTogle();
    //_delay_ms(500);
}
return 0;
}

klik build atau tekan f7, apabila tidak terdapat pesan error maka pengaturan untuk c++ sudah benar.. simulasikan program diatas untuk mengetahui apakah program berjalan sesuai perintahnya dengan klik debug>start debugging, untuk memulai klik debug>autostep dan perhatikan pada jendela i/o view pada PORTB  (Pada simulasi tidak digunakkan delay karena respon simulasi cukup lama sehingga dengan penambahan delay akan membuat respon sangat lama)



Selesai sudah bagian awal blog ini yang juga blog pertama kali kami, semoga dapat bermanfaat, pada bagian selanjutnya InsyaAllah akan menjelaskan tentang penggunaan OOP itu sendiri pada uC AVR, banyak yang berkomentar C++ itu lebih lamban daripada C ndak cocok untuk AVR, dan bisa jadi kapasitasnya lebih besar daripada C, adapula yang berkata sebaliknya. yaah daripada simpang siur seperti itu apa salahnya mencoba sendiri dan membuktikannya, toh gak ada ruginya coba coba belajar sesuatu yang baru.