Pelatihan AVR

10 Maret 2011

membuat database pada mikrokontroller

Assalamu'alaykum wr wb

sekarang saya akan membahas bagaimana membuat database sederhana pada mikrokontroller.
ada beberapa cirikhas yang sering terjadi pada mikrokontroller yaitu
- biasanya ukuran SRAM (static RAM) hanya seperdelapan dari ukuran memory Flash
- ukuran memory flash hanya berkisar 1-128 KByte
- dapat disimpulkan bahwa ukuran SRAM hanya berkisar 128 Byte - 2 KByte

hal inilah yang sering manjadi kendala ketika membuat database pada mikrokontroller. memory SRAM yang kecil dan memory flash yang lambat. hal ini juga belum diperhitungkan mengenai penggunaan ruang untuk program memory pada kedua memory tersebut, sehingga ruang yang dapat digunakan menyusut sangat kecil.
namun sebelum melangkah lebih jauh, ada beberapa dasar yang perlu diketahui baik menggunakan bahasa assembly maupun bahasa C pada pemrogramannya.



1. database diletakkan di SRAM
   keunggulannya : lebih cepat
   kekurangannya : ruang penyimpanan relatif sangat kecil
  misal data yang akan ditaruh yaitu ABCDEFh
  * pada bahasa assembly
    LDI YL, 45
    LDI YH, 07
    LDI R16,0xAB
    ST Y+,R16
    LDI R16,0xCD

    ST Y+,R16

    LDI R16,0xEF

   ST Y+,R16
  *pada bahasa C
    - bentuk array of char
     char data[3] ={0xAB,0xCD,0xEF};
    - bentuk string
     char *data = {"dfg"};

2. database diletakkan di memory flash
   keunggulannya : ruang lebih besar
   kekurangan : kecepatan lebih lambat
  misal data yang akan ditaruh yaitu ABCDEFh
  * pada bahasa assembly
    - bentuk array of char
    LDI ZL, 45
    LDI ZH, F7
    LDI R0,0xAB
    STM Z+,R16
    LDI R0,0xCD

    STM Z+,R16
    LDI R0,0xEF

    STM Z+,R16
   - bentuk string
   .db data 0xAB,0xCD,0xEF,0
  *pada bahasa C
    - bentuk array of char
     char flash data[3] ={0xAB,0xCD,0xEF};
    - bentuk string
     char flash *data = {"dfg"};


nah biar ga bingung, saya jelasin pake bahasa C aja ya, soalnya kalo pake bahasa assembly agak banyak, kalo requestnya banyak nanti saya akan buatkan menggunakan bahasa assembly pada posting tersendiri

cara paling mudah menuliskan database yaitu seperti ini:
pada contoh ini saya akan membuat tabel 4x8 dengan kriteria seperti ini : syarat setiap elemen database harus memiliki panjang karakter yang sama.

NIMNAMAPASSID
111070008FARD  1234561234567890123456
611070002KEREN 1234562345678901234567
114070003  AKU  1234563456789012345678
115070067AMPUN 1234564567890123456789
111080008FARD1 1234565678901234567890
611080456WAWAH 1234566789012345678901
114080056DUNG  1234567890123456789012
115080023TUING 1234568902345678901234

char  kolom[4]={0,10,18,25};
char flash *database [8]={
"111070008# FARD #123456#1234567890123456#",
"611070002# KEREN #123456#2345678901234567#",
"114070003#  AKU  #123456#3456789012345678#",
"115070067# AMPUN #123456#4567890123456789#",
"111080008# FARD1 #123456#5678901234567890#",
"611080456# WAWAH #123456#6789012345678901#",
"114080056# DUNG  #123456#7890123456789012#",
"115080023# TUING #123456#8902345678901234#"};


 pada contoh diatas database saya letakkan di flash memory terlihat pada kolom pertama saya memberi batas panjang karakter 9 karakter, kolom kedua 7 karakter, kolom ketiga 6 karakter, kolom keempat 16 karakter
cara mengakses baris pertama kolom pertama menggunakan *database[0]
cara mengakses baris ketiga kolom keempat menggunakan *(database[2]+25)
cara mengakses baris kedua kolom ketiga tinggal menggunakan *(database[1]+18)

untuk mengakses kolom pertama tambahkan 0, kolom kedua 10, kolom ketiga 18, kolom keempat 25
untuk mengakses baris pertama hanya lakukan pengaksesan pada array saja. hal ini dikarenakan peletakan database berdasarkan array of string. dan berhatikan database[i] artinya variabel tersebut menyimpan alamat dari string yang diletakkan pada baris [i+1].
 jika ingin mengakases data pada kolom ke i dan baris ke j dapat dilakukan menggunakan
*(database[j-1]+kolom[i-1])

mungkin sekian yang dapat saya sampaikan
kalo ada saran, silahkan dikomen saja
thx


Wassalamu'alaykum wr wb
Fardhady HK Hanggara


Tidak ada komentar: