eeproma sırası gelen adrese otomatik kayıt

Başlatan canbulut, 22 Şubat 2008, 23:34:13

canbulut

selam arkadaslar;
eeproma keypaddan girilen 4 haneli veriyi nasıl sırayla istenen eeprom adresine yazdırabilirim.
örnek 1 kişi geldi keypada şifresini girdi eepromun 0numaralı adresine otomatik kayıt edecek ikinci kişi geldi şifresini girecek otomatik olarak eepromun 1 numaralı adresine kayıt edecek 3.kişi geldi eepromun 2numaralı adresine kaydedecek nasıl olabilir.
benim aklıma eeprom adreslerine boşluk testi yapıp boş bulduğu ilk adrese yazması.bu testi nasıl yapabilirz.

OG

4 haneli sayıyı eeprom da 1 adrese sığdıramazsınız. PIC eeprom'un 1 adresi byte cinsinden veri saklayabilir. Yani 0-255 arası degeri kapsayabilir. 4 haneli sayı 9999 a kadar gidebileceği için word kullanılması gerekir. Bu durumda eepromda 2 adres işgal edilir. Veya 9 9 9 9 gibi dort digiti ayrı ayrı adreslere kaydedebilirsiniz. Bu durumda 1 kullanıcı eepromda 4 adres işgal eder.

kullanici var byte 'kullanıcı sayisi
kayit_adres1 var byte
kayit_adres2 var byte
giris_1 var byte
giris_2 var byte
giris_3 var byte
giris_4 var byte
şifre var word ' girilen veya okunan şifre

kullanici=1

tusabak: ' tus okuma kombinasyonu
.
.
'tusdan 4 adet giriş yapıldı (giris_1 .. giris_4 arası  elde edildi)

şifre=(giris_1*1000)+(giris_2*100)+(giris_3*10)+giris_4

kayit_adres1=(kullanici*2)-1
kayit_adres2=kullanici*2

write kayit_adres1,şifre.highbyte '1. adrese 1. kullanıcının şifresinin high byte ı yazıldı
write kayit_adres2,şifre.lowbyte '2. adrese 1. kullanıcının şifresinin low byte ı yazıldı

giriş devam ediyorsa,
kullanici=kullanici+1
goto tusabak
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

canbulut

teşekkürler og.pekala burda kaydedilebilecek kişi sayısı 256/4=64mü yoksa kişi sayısı256/2=128 kişimidir.

canbulut

256dan kastım 256 kb'lik bir eepromdan bahsetmek istedim

OG

*Şifre 0-255 arası kullanılırsa -ki çok iş için yeterlidir- 1 kullanıcıya 1 eeprom adresi (1Byte)
*Şifre 0-65535 arası kullanılırsa -ki 4 haneliden de fazla- 1 kullanıcıya 2 eeprom adresi (2 byte)
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

canbulut

teşekkür og.şimdi diyelimki 40 kişi kayıtladı kendisini 40 kişinin artık bir şifresi var diyelimki 10.sırada şifre almış adamı silicez ve bu adamın eepromdaki sahip olduğu adres temizlenecek.41. kişi geldiğinde kendini eklemek isterse 10.kişinin temizlenmiş adresine nasıl kendisini kaydedebilir. :oops:

SpeedyX

Alıntı yapılan: "canbulut"teşekkür og.şimdi diyelimki 40 kişi kayıtladı kendisini 40 kişinin artık bir şifresi var diyelimki 10.sırada şifre almış adamı silicez ve bu adamın eepromdaki sahip olduğu adres temizlenecek.41. kişi geldiğinde kendini eklemek isterse 10.kişinin temizlenmiş adresine nasıl kendisini kaydedebilir. :oops:

Bir sayıyıyı yasaklayacaksın, mesela 65535 yasak, kimsenin şifresi 65535 olamaz.
Şilinmiş üyenin şifresinin olduğu yere bu yasaklı sayıyı yazarsan, sonra program yeni kayıt yaparken sıradan FFFF (yasaklı sayı) arar ve bulduğu ilk yere yazar. Böylece arada kalan boş yerlerde doldurulur.

canbulut

ee peki arkadaslar ben buraya adamın giriş saatinide eeproma eklemek istesem iyice alan daralacak benim derdime ne çare olabilir.daha daha büyük eeprom mesela 1gb falanmı  :oops: bunu harici eeproma falanmı yazmak gerekecek acaba

SpeedyX

i2c ile çalışan 4MB a kadar eepromlar var.

Kaç kişinin kaydı tutulacak bu sistemde?

canbulut

şimdilik öyle kati bişey yok ama olacak.mesela 1500kişi olsa yeter.ancak saati ve tutacağı saatleride hesaba katarsanız.biraz yetersiz olabilirmi.

SpeedyX

1500 kişi olsa, her kişinin şifresi (2 byte), saati (3 byte) olsa kişi başı 5 byte gerekir. 1500 x 5 = 7500 byte = 7.5kb gerekir.

gigabytelara çıkmaya gerek yok.