Welcome, Ziyaretçi

Gönderen Konu: MPLAB C30 Compiler EEPROM Kullanımı  (Okunma sayısı 2194 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

smit

  • Administrator
  • Çavuş
  • ******
  • İleti: 92
  • Teşekkür: 32
    • Serbest Ucus Teknolojileri
MPLAB C30 Compiler EEPROM Kullanımı
« : 23 Haziran 2011, 22:07:10 »
Bu uygulamada PIC24F16KA102 kullandım.
16 bit picler için Data EEPROM kullanımı compilerın bize sağladığı kütüphaneler ile çok kolay bir hal alıyor.
İlk yapmanız gereken kullandığınız pic modelinin kullanma klavuzunda hafıza haritasına(Memory Map) bakarak Data EEPROM başlangıç adresinin ne olduğunu bulmak.



PIC24F16KA102' de Data EEPROM başlangıç adresi 0x7FFE00

ikinci adım projenize libpic30.h kütüphanesini eklemek.
Kod: Üye Olmadan Linkleri Göremezsiniz. Üye Olun veya Giriş Yapın
#include <libpic30.h>
bu işlemlerden sonra kullanacağımız 5 adet fonsiyon var.

Eepromdan veri silmek için
Kod: Üye Olmadan Linkleri Göremezsiniz. Üye Olun veya Giriş Yapın
_erase_eedata(Adres, Boyut);
Adres : Silinecek verilerin başlangıç adresi
Boyut : Başlangıç adresinden itibaren kaç byte veri silineceğini belirtir.

Bütün Eepromu silmek için
Kod: Üye Olmadan Linkleri Göremezsiniz. Üye Olun veya Giriş Yapın
_erase_eedata_all();

Bu fonksiyonu çalıştırdığınızda eeprom müsait olana kadar bekler.
Kod: Üye Olmadan Linkleri Göremezsiniz. Üye Olun veya Giriş Yapın
_wait_eedata();
Veri yazdıktan sonra kullanılmak zorunda olduğumuz bir fonksiyondur. Veriler yazılana kadar bekler.

Eeprom a veri yazmak için
Kod: Üye Olmadan Linkleri Göremezsiniz. Üye Olun veya Giriş Yapın
_write_eedata_word(Adres, Veri);
_wait_eedata();
Adres : Verinin yazılacağı adres
Veri : 16bit int türünden bir değişkendir.

örnek :
int Veri = 1827;
_write_eedata_word(0x7FFE00, Veri); // 0x7FFE00 adresine 1827 yazar
_wait_eedata(); // yazana kadar bekler


Eeprom'dan veri okumak için
Kod: Üye Olmadan Linkleri Göremezsiniz. Üye Olun veya Giriş Yapın
unsigned int OkunanVeri[];

_memcpy_p2d16(Dizi, Adres, Boyut);
Dizi : Verinin okunup yazılacağı int türünden 16bit değişken bloğu
Adres : Okunacak verilerin başlangıç adresi
Boyut : Başlangıç adresinden itibaren kaç byte veri okunacak onu belirtir.

örnek : _memcpy_p2d16(OkunanVeri, 0x7FFE00, 10); // 0x7FFE00 adresinden itibaren 10 adet veriyi OkunanVeri dizisine yazar