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
0 komentar:
Posting Komentar