Eeproma yazılabilecek en büyük değer ne onu ogrenirsen işin kolaylaşır. Mesela şöyleki bir byte yani 255 yani ff yazılır tek eeprom adresine. Sen ffffffff yazacaksan birer adres arttirarak yazacaksın. Mesela veri =0xabcdef99 olsun Eeprom write (adres1, ab) Eeprom wrlte (adres2, cd ) ..
Veriyi kaydırarak AB CD ef değerlerini otomatik uygulayabilirsn.
Örneğin data=0xff12 Data>>2 yaparsan sonuç ff olur. Yada data & 0x1100 yaparsan sonuç ff olur. Bitwise operator diye aratirsan yardımcı olur
Eeproma yazılabilecek en büyük değer ne onu ogrenirsen işin kolaylaşır. Mesela şöyleki bir byte yani 255 yani ff yazılır tek eeprom adresine. Sen ffffffff yazacaksan birer adres arttirarak yazacaksın.
Mesela veri =0xabcdef99 olsun
Eeprom write (adres1, ab)
Eeprom wrlte (adres2, cd ) ..
Veriyi kaydırarak AB CD ef değerlerini otomatik uygulayabilirsn.
Örneğin data=0xff12
Data>>2 yaparsan sonuç ff olur. Yada data & 0x1100 yaparsan sonuç ff olur. Bitwise operator diye aratirsan yardımcı olur
Okurkende tersten oku ve birleştir. Mesela adres 1 ab
Adres2 cd...
Adres1 data<<2 +adres2 data = abcd..
Bu durumları fonksiyon olarak yazarsan 2byte write gibi bir fonksiyon yaz mesela
byte sayi= 0xFFFFFF;
for(int i=0; i♥;i++){
EEPROM. Write(1+i, sayi);
}
Yemez. Hep en düşük değerlikli datayi basar
Dene bakalım
Byte değişken tutuyosun adreslemesi nasıl artıyor söyler misin
Veya byte=0xaabbff bunu bas bakalım
Dene diyorum
for(int i=0; i♥;i++){
EEPROM. Read(1+i);
}
Sayıyı aabbff falan yapsana bi. Eeprom un boş halı zaten ff. Yanlış bile bassa ff basacak.
boş hali sıfır
Sen yap kardeş dediğimi. Bı bak bakalım oluyo mu. Bu arada ff dir 0 tutulmaz eepromda
loop un içine yazarsan da sonsuz döner
Birader sen şu sayıyı aabbff yapsana bi
aabbff
Şakacı şey
Ne denedin mesela ?
Sabit bir sayıyı üç parça olarak kaydetmeyi ve okumayı yaptım. Ama değişkendeki ifadeyi nasıl üçe ayıracağımı bulamadım.
Mesela 0x00FFAA i 0x00, 0xFF, 0xAA diye ayırmam lazım. Ama bu bir string değil sayı. Sayıyı stinge çevirince baştaki sıfır sorun oluyor.
Bu arada RGB ledin sistem kapanıp açıldığında son kaldığı renkte yanması için yapıyorum bunu.
Kardeşim nasıl ayiracagini yazdım aslında. Sayı=0x00FFAA öyle mı O zaman byte sayi1= Sayı; Byte sayi2= Sayı>>2; Byte sayi3=Sayı >>4; Boylece sayı1 0x00 Sayi2 0xff Sayi3 0xaa
Sorunu çözdüm arkadaşlar.
Rfid projelerine bak. Orda eprom a kartları yazma kodları var. Kart numarası yerine istediğin değeri gömme şansın olabilir