Cara menggunakan / mengakses EEPROM sudah saya bahas di post
EEPROM : Mengakses EEPROM AVR.
Yang ingin saya bahas pada post ini adalah beberapa masalah yang biasa terjadi atau bahkan sering anda alami tetapi tidak anda sadari.
Dan lebih berbahayanya adalah anda tidak menyadari masalah ini yang mungkin bikin pusing anda ketika memprogram mikrokontroller / hardware anda.
Masalahnya yang ingin saya bahas yaitu data yang disimpan di EEPROM tidak sesuai dengan data yang kemudian dibaca dari EEPROM tersebut.
Saat anda ingin menulis data di EEPROM misalnya :
"SAYA MENULIS KALIMAT INI DAN TERSIMPAN DI EEPROM."
tetapi ketika mencoba membaca data tersebut untuk ditampilkan di LCD atau dikirim ke komputer, ternyata datanya tidak sesuai atau bahkan kacau balau.
Contoh Kasus
Anda ingin merancang suatu sistem yang pengontrollan berdasarkan waktu atau Time Scheduling Control misalnya seperti ingin mematikan atau menyalakan beberapa lampu di beberapa ruangan yang dikendalikan oleh mikrokontroller.
Transfer data melalui port USB atau port COM.
Sesuai keinginan anda.
Data Bulan, Hari, Tanggal, Jam, dan Menit ditentukan oleh User melalui software komputer yang kemudian software mentransfer data tersebut ke MCU (Microcontroller Unit). Oleh MCU data tersebut disimpan di dalam EEPROM agar dapat disimpan secara (semi) permanen dan data dapat digunakan ketika sistem / perangkat dinyalakan setelah power supplynya Off (dicabut).
Data yang dikirim oleh komputer misalnya protokolnya seperti berikut : #02,16,04,08,00;ON;01,02,03,04,05~
Artinya :
- # : Karakter awal / Start Byte berfungsi untuk informasi ke MCU bahwa Komputer akan mengirimkan serangkaian data ke MCU.
- , (koma) : Karakter pemisah antar data.
- 02,16,04, : Bulan ke 2 (Februari), tanggal 16, hari ke-4 (rabu, minggu hari ke-1)
- 08,00 : Jam 8 menit ke 00 (tepat jam 8 pagi).
- ; (titik koma) : Karakter pemisah Perintah
- ON : Perintah On untuk menyalakan lampu dan OF (2 karakter dan bukan OFF) untuk mematikan lampu.
- 01,02,03,04,05 : Ruangan yang di On-kan adalah ruang 1, 2, 3, 4, dan 5.
- ~ : Karakter akhir data / Stop Byte berfungsi untuk informasi ke MCU bahwa data telah selesai di kirimkan.
Coding yang Tidak Tepat dan Coding yang Tepat
Jika anda memprogram seperti coding di atas maka data yang tersimpan di EEPROM kemungkinan ERROR-nya mencapai 40-80 % (Xixixixixi... survey asal-asalan) tergantung panjang data yang ditransfer lalu disimpan di EEPROM. Artinya semakin panjang data yang di transfer terus-menerus ke MCU dan kemudian di simpan di EEPROM maka semakin besar pula kesalahan data-data yang tersimpan di EEPROM. Oleh sebab itu saya sarankan untuk memprogram seperti Coding berikut :
Penjelasannya di Post :
EEPROM : Penjelasan EEPROM dan Error Data
Panjaaaang nih..
Semoga membantu ...^^v...