APLIKASI

Selasa, 09 April 2013

Fungsi Mid di Bahasa C dengan Codevision Avr, Arduino dan Atmel studio


Fungsi Mid adalah fungsi yang digunakan untuk mengambil beberapa karakter dari data.
misalkan saya mau mengambil data nama depan saya saja.
dim data as string
dim pecahData as string

data="edy prasetiyo"
pecahData=mid(data,1,3)
Texbox1.text= pecahData
data yg tampil di textbox adalah "edy", lantas di codevision avr atau software semacamnya yg menggunakan bahasa C(arduino, atmel studio, dll) bisa tidak kita menggunakan fungsi mid. tentu saja bisa. namun stau saya codevision avr tidak menyediakan fungsi tersebut..
namun kita bisa membuatnya..
berikut listing progam di Codevision Avr yang akan di tampilkan di lcd lewat simulasi proteus.


 #include <mega16.h>  
 #include <string.h>  
 #include <stdlib.h>  
 #include <stdio.h>  
 // Alphanumeric LCD functions  
 #include <alcd.h>  
 /*****************fungsi mid**********************/  
 char* mid(char data[],int awal,int akhir){  
 int p_karakter =strlen(data);  
 static char dataMid[p_karakter];  
 int ulang;  
 int index=0;  
 for(ulang=awal;ulang<akhir+awal;ulang++){  
 dataMid[index]=data[ulang];  
 index++;  
 }   
 dataMid[index]='\0';  
 return dataMid;  
 }  
 /**************deklarasi variabel*********************/  
 char a[]="Edy Prasetiyo";  
 char b[];  
 /********************main**************************/  
 void main(void)  
 {  
 // Alphanumeric LCD initialization  
 // Connections are specified in the  
 // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:  
 // RS - PORTC Bit 0  
 // RD - PORTC Bit 1  
 // EN - PORTC Bit 2  
 // D4 - PORTC Bit 4  
 // D5 - PORTC Bit 5  
 // D6 - PORTC Bit 6  
 // D7 - PORTC Bit 7  
 // Characters/line: 16  
 lcd_init(16);  
 lcd_gotoxy(0,0);  
 lcd_puts(a);  
 /*ambil data edy prasetiyo   
 *************0123456789xxx  
 ambil data mulai dari index ke 0 sebanyak 2 karakter kekanan  
 */  
 strcpy(b,mid(a,0,2));  
 lcd_gotoxy(0,1);  
 lcd_puts(b);  
 while (1)  
    {  
    // Place your code here  
    }  
 }  



hasil simulasinya


Penjelasan

- Fungsi Mid
char* mid(char data[],int awal,int akhir){
int p_karakter =strlen(data);
static char dataMid[p_karakter];
int ulang;
int index=0;
for(ulang=awal;ulangdataMid[index]=data[ulang];
index++;

dataMid[index]='\0';
return dataMid;
}


coding di atas untuk memecah data
strcpy(b,mid(a,0,2)) ,ambil data string a, mulai dari index ke 0 sebanyak 2 karakter kekanan, kemudian di kopi ke varibel b. mengapa tidak b=mid(a,0,2) .. string di codevision menggunakan kumpulan data array (char),jadi untuk mengkopinya, kita haru harus menggunakan sintaks strcpy , mungkin singkatannya stringcopy...


silakan download contoh progam dan simulasi nya di sini
pass : cintakupadamutakakanpernahpadam

3 komentar :

PPI_Kota_Sukabumi mengatakan...

kalo di arduino conto kodenya jd seperti apa??

Edy Prasetiyo mengatakan...

sama ko mas..

tinggal sesuaikan sintaks untuk menampilkan di lcd atau data serial saja...

Unknown mengatakan...

ikut belajar gan,, (y)