Xc8 eeprom kullanımı yardımı

Başlatan Qwert, 31 Ocak 2021, 15:22:18

Qwert

Merhabalar herkese iyi günler xc8 e yeni basladım Bi konuda yardımlarınızı bekliyorum bi uygulama için analog girişten okuduğum analog degeri örneğin 1000 degerini bir buton yardımı ile dahili eeprom hafızaya kaydetmek istiyorum ama yapamadım nasıl yapılacağı konusunda yardımlarınızı bekliyorum

mehmet

XC8 de dahili e²prom için yazma ve okuma fonksiyonu bulunur.

Sıfırıncı adresten bir byte bilgi okur. Dönüş değeri okunan bilgidir.
okunanDeger eeprom_read(0x00);
Sıfırıncı adrese veri değişkeni içerisindeki bir byte bilgiyi kaydeder.
eeprom_write(0x00, (unsigned charveri);

ahuramazda

Alıntı yapılan: Qwert - 31 Ocak 2021, 15:22:18Merhabalar herkese iyi günler xc8 e yeni basladım Bi konuda yardımlarınızı bekliyorum bi uygulama için analog girişten okuduğum analog degeri örneğin 1000 degerini bir buton yardımı ile dahili eeprom hafızaya kaydetmek istiyorum ama yapamadım nasıl yapılacağı konusunda yardımlarınızı bekliyorum

regiterlar kullandığınız seriye göre değişir ama mantık aşağıdaki gibidir.
void DATAEE_WriteByte(uint8_t bAdduint8_t bData)
{
    
uint8_t GIEBitValue INTCONbits.GIE;
    
    
//Set NVMADR with the target word address: 0x310000 - 0x3100FF
    
NVMADRU 0x31;
    
NVMADRH 0x00;
    
NVMADRL = (uint8_t)(bAdd 0xFF);

    
//Load NVMDATL with desired byte
    
NVMDATL = (uint8_t)(bData 0xFF);
    
    
//Enable NVM access
    
NVMCON0bits.NVMEN 1;
    
    
//Disable interrupts
    
INTCONbits.GIE 0;

    
//Perform the unlock sequence
    
NVMCON2 0x55;
    
NVMCON2 0xAA;

    
//Start DATAEE write and wait for the operation to complete
    
NVMCON1bits.WR 1;
    
//Restore all the interrupts
    
INTCONbits.GIE GIEBitValue;
    while (
NVMCON1bits.WR);

    

    
//Disable NVM access
    
NVMCON0bits.NVMEN 0;
}

uint8_t DATAEE_ReadByte(uint8_t bAdd)
{
    
//Set NVMADR with the target word address: 0x310000 - 0x3100FF
    
NVMADRU 0x31;
    
NVMADRH 0x00;
    
NVMADRL = (uint8_t)(bAdd 0xFF);
    

    
//Start DATAEE read
    
NVMCON1bits.RD 1;
    
NOP();  // NOPs may be required for latency at high frequencies
    
NOP();

    return (
NVMDATL);
}

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.