EEPROM ZAMAN PROBLEMİ

Başlatan ismailhan, 01 Kasım 2007, 11:19:54

ismailhan

slm arkadaslar pic eepromuna belli zaman kayıtları yapmak istiyorum.mesela; bir led var bunu degisik aralıklarla yakıcaz.1 sn 10 sn 30 sn 45 sn gibi.ben bunları eeproma kayıt yapıyorum.fakat;
led yandı (10ms)zamanı uyguladık.led sondu.eeproma kayıt et.ikinci zamana gec.led yandı (20ms) zamanı uyguladık.led sondu.actım kapatıım enerjiyi.nerde kaldı ise ordan baslıcak.
:roll:

XX_CİHAN_XX

Eepromun sabit bir adresine kaldığın konumu sayısal olarak yazmalısın.
Örneğin bu iş için eepromun 255 inci adresini kullan ve bir sayac registeri aç.Programın ilk başladıgında 255 inci adresi okuyup 0xFF ten farklı mı değil mi bunu soracak.0xFF varise hiç kayıt yapılmadı program yenı başlıyor demektir.Bu durumda sayac registerini clear edip ana döngüyü başlatıcaksın.Eğer 0xFF ten farklı bir sayı degeri varsa daha önce kayıt yapıldı ve devam edilecek demektir bu değeri sayaca atarak anadonguye gireceksin.
Anadongude ise sayacı sorarak başlıyacagın npktayı belirleyeceksin.Bu şekilde kaldıgın yerden devam edebilirsin.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

ismailhan

İLGİN İCİN sağol arkadasım.sunları zaten yaptım;
10 sn mesala kayıt etmem gerekiyor.butona basıldı led yandı 10msn gecikti eeproma 10msn atıyorum.basta okuyorum eepromu.eger 10 ise icindeki deger kayıt yapılmamıs aynı diyorum(8 kere farklı sn kontrol ederek basta tek adres uzerinden)    
simdi eeproma adresine bilgiyi kayıt ettikten sonra hemen basa goturup okumak gereklimi.her butona basısta 1 tane olmak uzere 8 tane zaman bilgisi attım degistirerek ama eeprom okumadı.yani eproma bilgiyi yazdın ordan direk okumayamı yollanmalı.olay karıstı bi daha acık anlatabillirsin.

XX_CİHAN_XX

Alıntı yapılan: "ismailhan"İLGİN İCİN sağol arkadasım.sunları zaten yaptım;
10 sn mesala kayıt etmem gerekiyor.butona basıldı led yandı 10msn gecikti eeproma 10msn atıyorum.basta okuyorum eepromu.eger 10 ise icindeki deger kayıt yapılmamıs aynı diyorum(8 kere farklı sn kontrol ederek basta tek adres uzerinden)    
simdi eeproma adresine bilgiyi kayıt ettikten sonra hemen basa goturup okumak gereklimi.her butona basısta 1 tane olmak uzere 8 tane zaman bilgisi attım degistirerek ama eeprom okumadı.yani eproma bilgiyi yazdın ordan direk okumayamı yollanmalı.olay karıstı bi daha acık anlatabillirsin.
Burada bahsettiğini picin dahili eeprom belleği değil mi?
Cevabının evet olduğunu varsayarak hangi dilde program yazdığınıda sormak istiyorum.Eğer assembly ile yazıyorsan kullandığın pici söyle sana sana eeprom okuma, yazma alt programı yollayım.Kendi programınla bir karşılaştır okuma ve yazma rutinlerinde hata var mı yok mu diye...
Öncelikle şuna açıklık getireyim eeproma bilgi kaydetmenın yada okumanın bir sırası yoktur.İstediğin zaman istediğin adrese kayıt yapabilir yada okuyabilirsin.Yani kayır yapar yapmaz gidip okuma yapmak zorunda değilsin.
Eklemek istediğim başka bir nokta ise (picin dahili eepromunu kullandıgını varsayarak) okuma ve yazma gecikmeleridir.Eproma yazma işlemi yaklaşık 4-5mS sürer, okuma hızlıdır oda yaklaşık 4-5uS sürer.Tam olarak yapmaya çalıştıgın şeyi bilmiyorum ancak sende mS (milisaniyelerle) işlem yapıyorsun bu durumda yazma gecikmesinide göz önünde bulundurman gerekebilir.
Eeprom adreslemelerinde yada yazma okuma rutinlerinde problemin olabilir.Çok uzun değilse programın kodlarını buraya koy veya hatanı biraz daha açık yaz.Yaptığın işlemleri sıra ile anlatarak hatanın çıktığı noktaları belirtirsen daha çok yardımcı olabilirim.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.