"Kembali Ke Dasar Elektronika Digital ... "

Minggu, 30 Desember 2012

[Part 2] Belajar dasar bahasa GCC - Function & Array

png00002.png (1329×937)
Bagian kedua dari tutorial akan membahas susunan scipt GCC yang digunakan sebagai bahasa pemrogramman microcontroller. Setelah sebelumnya kita membahas bagia header, maka sekarang kita bahas mengenai "function". Dalam bahasa C  semua kode dieksekusi berada dalam suatu function. Function adalah sebuah blok yang mempunyai nama  yang melakukan tugas dan kemudian akan mengembalikan kontrol ke pemanggil. Perhatikan bahwa bahasa pemrograman lain mungkin membedakan antara "function", "subroutine", "subprogram", "procedure", atau "metode" -  sedangkan dalam C hal ini semuanya sama dan bernama function.  Array dalam Bahasa C  dapat didefinisikan sebagai jumlah lokasi memori, yang masing-masing dapat menyimpan tipe data yang sama dan yang bisa menjadi referensi melalui nama variabel yang sama.


FUNCTION

Sebuah function sering dieksekusi (dipanggil) beberapa kali, dari beberapa tempat yang berbeda, selama eksekusi dari sebuah program. Setelah menyelesaikan subrutin, program ini akan bercabang dan kembali ke titik setelah dimana function ini dipanggil. Function adalah alat pemrograman yang kuat yang merupakan salah satu kelebihan bahasa C.


Secara umum pada pemrograman microcontroller berbasis GCC - Winavr, pola function paling utama adalah seperti berikut:


int main(void)

{  
  uint8_t a;
  DDRA  |= (1<<PA6)|(1<<PA7); //port yg digunakan PA6 & PA7  
  a=100;
  while(1)

   {    
    
  a=200;
    }
   
   return 0;

  }


function yang bernama main() merupakan function utama dimana awal dari program microcontroller dimulai. Function ini sebaiknya diberikan tipe data yang akan di kembalikan (return) karena beberapa compiler menanggap semua function itu sama. Jika tidak diberi type maka di depan main diberikan tanda void. Trus kenapa di dalam kurung terdapat void juga ? perhatikan jenis function berikut ini.




void coba_fungsi_1(void)

{  DDRA  |= (1<<PA6)|(1<<PA7);
//isi fungsi bebas ................
}


 int coba_fungsi_2(int var_a,  int var_b  ) 
 {
int var_c;
 
var_c = var_a + var_b ;
   
return (var_c);
   
  }
  
function yang berisikan kata-kata void berarti bahwa type dan variabel dari function tidak digunakan. Bandingkan dengan contoh function yang ke dua yang bertype integer dengan 2 buah variabel didalam kurung, yang jika dipanggil menggunakan perintah seperti berikut :


int main(void)

{  

int output;

 //panggil function1

    coba_fungsi_1();

  //panggil function2

   output = coba_fungsi_2(5, 3);


 // nilai dari variabel output =  8


  }



ARRAY

Array adalah penamaan kolektif yang diberikan kepada sekelompok data pada memory dalam jumlah yang sama. Jumlah yang sama ini contohnya bisa berupa nilai dari 100 siswa, jumlah kursi di rumah, atau gaji dari 300 karyawan atau usia dari 25 orang siswa. Jadi array adalah kumpulan elemen yang sama. Biasanya array dari banyak karakter disebut sebagai "string" array. Semua elemen dari setiap array yang diberikan harus dari jenis yang sama semisal kita tidak bisa memiliki sebuah array dari 10 buah nomor , yang 5 bertipe integer dan 5 sisanya bertipe uint8_t.

Contoh array yang sering dipakai dalam project-project di blog ini adalah array untuk data teks pada project led matrix "love hurt".



const char love[5]  =

{

0b0011110,

0b0100001,

0b1000010,

0b0100001,

0b0011110



};


const char L[5]  ={0x7f, 0x7f, 0x40, 0x40, 0x20}; 

const char O[5] ={0x3e, 0x7f, 0x41, 0x41, 0x3e};


char isinya[5],hasilnya[10];


const char creature[]={0x4e, 0x31, 0x35, 0x31, 0x4e}; 

uint8_t EEMEM tengkorak[5]= {0x1e, 0x75, 0x61, 0x75, 0x1e}; 




Dapat dilihat bahwa array memiliki nilai yang dapat di inisialkan terlebih dahulu atau nilainya kosong. Besar dari data yang dipesan untuk array sebaiknya di tentukan namun jika datanya seragam dapat juga dikosongkan. Array ini dapat kemudian dipindahkan ke dalam variabel lain ataupun di ubah nilainya.




int main(void)

{


  
//memindahkan data dari data yang sudah ada ke memory lain
 isinya[0]=creature[0]
 isinya[1]=creature[1];   
 isinya[2]=creature[2];
 isinya[3]=creature[3];   
 isinya[4]=creature[4];


//merubah data dari array secara sengaja

love[4]=0b0001100;

 
}





Jadi perlu diperhatikan ukuran dan jenis dari array yang akan dipindah-pindah haruslah sesuai.


nantikan pembahasan part#3  yang lebih seru pada lain waktu


Share:

0 komentar:

Posting Komentar

Kontak Langsung



12179018.png (60×60)
+628155737755

HP: 081331339072
Mail : ahocool@gmail.com

ANTI SPAM !



Blog Ini Mendukung Blogger Indonesia Yang Jujur dan Memberikan Informasi Sebenarnya, Bukan Menyampah Demi $Rp$ Yang Hanya Merendahkan Blogger Indonesia

Site View

Categories

555 (6) 7 segmen (3) adc (3) amplifier (1) analog (9) android (11) attiny (1) attiny2313 (16) blog (1) bluetooth (1) cmos (1) dasar (31) display (2) gcc (1) infrared (2) Input Output (3) jam (6) jualan (10) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (9) komputer (3) komunikasi (1) kontrol (2) lain-lain (8) lcd (2) led (9) led matrix (6) line tracer (1) lm35 (1) memory (1) metal detector (4) microcontroller (48) mikrokontroller (1) mikrotik (4) paket belajar (19) palang pintu otomatis (1) pcb (2) project (33) proyek (1) radio (3) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (1) sharing (2) sms (5) software (16) tachometer (2) telepon (7) televisi (16) transistor (1) troubleshoot (3) tulisan (34) tutorial (67) vu meter (1) vumeter (1) wav player (3) wayang (1) wifi (1)

Diskusi


kaskus
Forum Hobby Elektronika