Dahili eeprom hatalı bilgi veriyor
  • Merhabalar
    Şöyle bir sorunum var
    Arduino mega ile harici eproma karakter bazında bilgi kaydedip, kaydedilen bilgileri arduino ile okurken
    tanımlamış oldugum char değişkenine atamaları yanlış yapıyor.
    harici epromu başka sistemimde okudugumda herşey normal
    Sistem için şöyle örnek vereyim,
    3 adet char tipinde değişkenim var
    x,y,z
    x=12345;
    y=23456;
    z=34567;
    bu bilgileri harici eproma kayıt işleminde sıkıntı olmuyor.
    Harici epromdan bu bilgileri okurken
    x=12345?
    y=2345612345;
    z=345672345612345;
    şeklinde okuma yapıyor.
    Dahili eproma bu bilgileri alırken ana deger artı bir önceki deger diye alıyor ve 32byte tamamlanınca sıfırlanıyor.
    Evet sanki sorun belli gibi ama kafam durdu.
    Kullandıgım kütüphaneler.
    Harici eprom için EEPROMAnything2.h
    dahili eprom için EEPROM.h


  • Örnek olması için programdan kodlar şu şekilde

    #include < EEPROMAnything2.h>
    #include < EEPROM.h>
    #define EEPROM_I2C_ADDRESS 0x50 //Harici Eprom adresi
    int adres;

    void setup() {
    Wire.begin(0x50);
    Wire.begin(0x51);
    Serial.begin(9600);
    }

    void loop() {

    adres=29;
    char x[ ]={"12345"};
    EEPROM_writeAnything(adres, x); delay(25);Serial.println(x);
    adres=39;
    char y [ ]={"23456"};
    EEPROM_writeAnything(adres, y); delay(25);Serial.println(y);
    adres=49;
    char z[ ]={"34567"};
    EEPROM_writeAnything(adres, z); delay(25);Serial.println(z);

    delay(3000);
    char a[5];
    char b[5];
    char c[5];
    adres=29; EEPROM_readAnything(adres, a);Serial.println(a);
    adres=39; EEPROM_readAnything(adres, b);Serial.println(b);
    adres=49;EEPROM_readAnything(adres, c);Serial.println(c);
    delay(2000);
    }
  • char a[5];
    char b[5];
    char c[5];

    Bunları 6 yap düzelir.
  • amenofis çok teşekkürler
    peki niçin 6 yapmak zorunda kaldım.
  • Çünkü stringlerin sonunda 1 tane de sonlandırma karakteri (0) olur. Bu olmazsa stringin nerede bittiği bilinemezdi.
  • teşekkürler

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook
Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.