eeprom hakkında

Başlatan canbulut, 05 Temmuz 2011, 15:20:17

canbulut

s.a arkadaslar,
eeproma kayıt yapmak istiyorum fakat yapacağım olay aynen şöyle,
seri porttan bir veri gelecek mesela 13 karekteri ile biten bir dizi...boyutu belli değil..3 byte olabilir 5 byte olabilir 8 byte olabilir.gelecek byte adedi belli değil.bu bilgileri nasıl kaydedebilirim.dahili eeproma görede olabilir harici eepromada görede olabilir.önemli olan mantığı olduğundan eeprom çesidinin önemi yok.

Okan AKÇA

n kadar veri gelirse for döngüsü veri sayısı kadar eprom ilk adresinden başlayarak kayıt yapmaya başla(ilk adres ilk defa yazılacak ise boş eprom veri bellegi 0xff dir) dongü olustur.daha sonra gelen verilerde eprom 0 adresinden ihtibaren 0xff ara bbuldugun yerde tekrar yukarıdaki işlemi yap bu sayede eprm doluncaya kadar verileri kayıt edersin verileri silecegin zaman icerisine 0xff yükle

canbulut

Alıntı yapılan: cyclone - 05 Temmuz 2011, 15:36:45
n kadar veri gelirse for döngüsü veri sayısı kadar eprom ilk adresinden başlayarak kayıt yapmaya başla(ilk adres ilk defa yazılacak ise boş eprom veri bellegi 0xff dir) dongü olustur.daha sonra gelen verilerde eprom 0 adresinden ihtibaren 0xff ara bbuldugun yerde tekrar yukarıdaki işlemi yap bu sayede eprm doluncaya kadar verileri kayıt edersin verileri silecegin zaman icerisine 0xff yükle

cevap için teşekkürler.deneyeceğim.

fryrmnd

Şöyle ufak bir kod var proteusta kurup anlayabilirsin.

DEFINE LCD_DREG      PORTD   
DEFINE LCD_DBIT         4     
DEFINE LCD_EREG      PORTD   
DEFINE LCD_EBIT         3     
DEFINE LCD_RSREG   PORTD   
DEFINE LCD_RSBIT      2           
DEFINE LCD_BITS         4   
DEFINE LCD_LINES      2

TRISD=0
TRISE=0
TRISA=0
TRISB=%10000001

ADCON1=7

VERIL VAR BYTE
VERIH VAR BYTE
BL VAR BYTE
BH VAR BYTE
ADRESS VAR word
SCL VAR PORTC.3
SDA VAR PORTC.4


PAUSE 200
LCDOUT $FE,1
adress=0
VERIL=7
VERIH=8

   I2CWRITE SDA,SCL,$A0,ADRESS,[VERIL,VERIH]
   PAUSE 10
   
BASLA:
LCDOUT $FE,2,"AKTIF"
PAUSE 500
adress=0
  I2CREAD SDA,SCL,$A0,ADRESS,[BL,BH]
  LCDOUT $FE,1
  LCDOUT $FE,2,DEC BL,DEC BH
  PAUSE 1000
  GOTO BASLA 


Trısb kısmının bir anlamı yok direk çıkış olarak ayarlayabilirsin onu