bentuk umum fungsi :
tipefungsi namafungsi (parameter, ........)
{
syntax;
}
syntax;
}
tipefungsi ada 2 :
1. tipe fungsi yang memerlukan nilai balik, biasanya dideklarasikan dengan "int"
2. tipe fungsi yang tidak memerlukan nilai balik, biasanya di deklarasikan dengan void.
namafungsi :
nama fungsi tersebut yang akan di panggil didalam program lain.
parameter :
tipe parameter, bila parameter lebih dari satu (1), masing-masing
dipisahkan dengan tanda koma ( , )
untuk menyatakan fungsi tanpa parameter dispesifikasikan : ‘void’. Bila
tipe parameter tidak dispesifikasikan, defaultnya : ‘void’
fungsi harus di deklarasikan dahulu, agar bisa di eksekusi dalam suatu program, pendeklarasian fungsi bisa hanya mewakili nama fungsi sj, atau penulisan fungsi selurunhnya :
lebih mudahnya kita tengok saja contoh di bawah :
.
.
.
.
.
.
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
.
.
void main(void)
{
.
.
while (1)
{
// Place your code here
}
}
diatas merupakan fungsi pembacaan nilai digital yang di ubah menjadi analog, fungsi diatas merupakan funsi yang memberikan nilai balik, isa dilihat dari pendeklarasian fungsi tersebut, yakni unsigned char.
fungsi read_adc diatas bisa dipanggil di dalam fungsi utama, atau di dalam while, contoh pemanggilan yang sering di gunakan dalam while :
PORTB = read_adc(0x00);
arti perintah diatas adalah, memasukkan nilai ADC pada PORT ADC.0 ke dalam PORTB.
dalam penulisan fungsi, apabila menulis fungsi secara utuh, maka tidak menggunakan ";".
unsigned char read_adc(unsigned char adc_input)
{
.......
}
namun saat kita memanggil fungsi tsb, dsi perlukan pemberian ";"
PORTB = read_adc(0x00);
penulisan program fungsi bisa diletakkan setelah void main :
contoh kodingan penampil nilai ke LCD dan virtual terminal di artikel fix USART . ini bisa di jadikan function :
kodingan awalnya :
while (1)
{
// Place your code here
data1=read_adc(0x00);
itoa(data1,string);
if(data1!=data2)
{
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(string);
}
data2=data1;
};
}
sintak diatas tidak memerlukan nilai balik; kita tulis functionnya dibawah while(1); seperti ini:
while (1)
{
// Place your code here
penampil();
};
}
void penampil()
{
data1=read_adc(0x00);
itoa(data1,string);
if(data1!=data2)
{
lcd_clear();
lcd_gotoxy(0,0);
lcd_puts(string);
}
data2=data1;
}
cara memanggilnya kita masukkan kedalam while agar terus ditampilkan secara realtime, namun function yg di tulis setelah di panggil seerti contoh diatas, harus dideklarasikan diatas program utama:
void penampil();
.
.
void main(void)
semoga bermanfaat . . . . . . .
Tidak ada komentar:
Posting Komentar