Halaman

Sabtu, 07 Desember 2013

Function a.k.a Fungsi

Dalam pemrograman C, ada yang dinamakan function. Function merupakan satu blok kode yang menjalankan program tertentu yang di eksekusi ketika di panggil di bagian lain dalam suatu tersendiri.


bentuk umum fungsi :

tipefungsi namafungsi (parameter, ........)
{
  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