Untuk memahami bagaimana cara memanggil fungsi dalam sebuah program bahasa C, mari kita lihat contoh program berikut.
1. Struktur program bahasa C pertama (dengan prototype fungsi)
#include <mega16.h>
//Prototype fungsi
void fungsi1();
void fungsi2(void);
void fungsi3(int w, int x, int y, int z);
int fungsi4(int a, int b);
unsigned int jumlah;
int main(void)
{
…………
jumlah = fungsi4(7,5);
fungsi2();
fungsi3(0x00, 0xFD, 0xEF, 0xCA);
fungsi1();
………
return 0;
}
void fungsi1()
{
…………
…………
}
void fungsi2(void)
{
…………
…………
}
void fungsi3(int w, int x, int y, int z)
{
PORTA = w;
PORTB = x;
PORTC = y;
PORTD = z;
}
int fungsi4(int a, int b)
{
int hasil;
hasil = a + b;
return hasil;
}
2. Struktur program bahasa C kedua (tanpa prototype fungsi)
#include <mega16.h>
unsigned int jumlah;
void fungsi1()
{
…………
…………
}
void fungsi2(void)
{
…………
…………
}
void fungsi3(int w, int x, int y, int z)
{
PORTA = w; PORTB = x; PORTC = y; PORTD = z;
}
int fungsi4(int a, int b)
{
int hasil;
hasil = a + b;
return hasil;
}
int main(void)
{
…………
jumlah = fungsi4(7,5);
fungsi2();
fungsi3(0x00, 0xFD, 0xEF, 0xCA);
fungsi1();
………
return 0;
}
gan, misalkan perintah PORTD=0xFD itu fungsinya untuk apa ya?
ReplyDeletesaya lagi belajar bahasa C otodidak, tapi ga ada yang jelasin fungsi2nya, cuman script2 langsung jadi aja :)
@Diaz Adi
ReplyDeletePerintah PORTD=0xFD fungsinya untuk mengisi data pada register PORTD dengan nilai bilangan heksadesimal FD (0x adalah tanda bahwa sebuah nilai dalam program dalam format bilangan desimal.
Detailnya begini,
Kita konversi dulu nilai F dan D tersebut kedalam bilangan biner.
F = 1111 (biner)
D = 1101 (biner)
FD = 11111101 (biner)
Asumsi:
1 = high = logika tinggi
0 = low = logika rendah
PORTD merupakan register dalam mikrokontroler yang memiliki lebar data 8-bit. Sehingga apabila nilai 11111101 di-inputkan ke dalamnya, maka artinya semua bit pada PORTD akan berlogika high (1) kecuali bit ke-1.
Demikian, semoga membantu.