0-9999 sayıcı

Katılım
26 Eyl 2011
Mesajlar
16
Puanları
1
Yaş
42
slm. arkadaşlar ben 0-9999 sayıcı yapmak istiyorum ama saydırma yaparken picin enerjisini kesip tekrar verdiğimizde saymaya kaldıgı yerden devam etmesini istiyorum taki resetleyene kadar pic programlamada yeniyim ccs c dilinde bunu nasıl yaparım
 
Ben ccs c den hiç anlamam, ama mantık olarak fikir verebilirim. Öncelikle hangi md. yi kullanacağınız önemli 16f gibi 8 bitlik md. kullanacaksanız saydırma ve saydırdığınız sayının kaç olduğunu tutacak değişkenler kısmında kullanılacak register 9999 sayısı için 2 tane olacak demektir, normalde enerji kesildiğindeki değerin ne olacağını önemsemiyor olsaydınız sadece Data Memory (RAM) i kullanmanız yeterli olurdu ama siz elektrik kesilince silinmeyen hafızayı yani ya program hafızasını ki bu şimdilik olmaz yada EEPROM hafızasını kullanmanız gerekecek. Siz EEPROM hafızasını kullanabilirsiniz, kullanacağınızın picin datasheetinde EEPROM bölümünü inceleyebilir, buraya yazma okuma nasıl yapılır öğrenebilirsiniz, veya kullandığınız programlama dili ile yapılmış eeprom a yazma okuma örneklerini araştırabilirsiniz, bunu öğrendikten sonra, sayıcınız her yeni değer aldığında bu değeri eepromda belirlediğiniz yere yazıp sürekli kayıt altında tutmuş olacaksınız, elektrik kesilip veya pic resetlenip tekrar programınıza başladığında sayma değeri öncelikle eepromdan okunacak ve ekranda gösterilecek siz bu değeri program akışıyla sıfırlamadığınız sğrece hep verdiğiniz değerde kalacak. Yani kısaca konunuz eeproma yazma ve okuma, kolay gelsin.
 
Ben ccs c den hiç anlamam, ama mantık olarak fikir verebilirim. Öncelikle hangi md. yi kullanacağınız önemli 16f gibi 8 bitlik md. kullanacaksanız saydırma ve saydırdığınız sayının kaç olduğunu tutacak değişkenler kısmında kullanılacak register 9999 sayısı için 2 tane olacak demektir, normalde enerji kesildiğindeki değerin ne olacağını önemsemiyor olsaydınız sadece Data Memory (RAM) i kullanmanız yeterli olurdu ama siz elektrik kesilince silinmeyen hafızayı yani ya program hafızasını ki bu şimdilik olmaz yada EEPROM hafızasını kullanmanız gerekecek. Siz EEPROM hafızasını kullanabilirsiniz, kullanacağınızın picin datasheetinde EEPROM bölümünü inceleyebilir, buraya yazma okuma nasıl yapılır öğrenebilirsiniz, veya kullandığınız programlama dili ile yapılmış eeprom a yazma okuma örneklerini araştırabilirsiniz, bunu öğrendikten sonra, sayıcınız her yeni değer aldığında bu değeri eepromda belirlediğiniz yere yazıp sürekli kayıt altında tutmuş olacaksınız, elektrik kesilip veya pic resetlenip tekrar programınıza başladığında sayma değeri öncelikle eepromdan okunacak ve ekranda gösterilecek siz bu değeri program akışıyla sıfırlamadığınız sğrece hep verdiğiniz değerde kalacak. Yani kısaca konunuz eeproma yazma ve okuma, kolay gelsin.


16f84a kullanmayı düşünüyorum enerji oldugunda ve pice veri gelmediğinde pici sleep modunda bekletmeyi enerji kesildiğinde son saydıgı değeri kaydetmeyi ve sonra kaldıgı yerden devam etmesini istiyorum burada sürekli picin eepromuna veri kaydedip silmek ne kadar sağlıklı yani pice her hangi bir sakıncası olurmu
 
Sakıncası olacağını sanmam ama kesin net bilgi için datasheete bakıp eeprom yazma-silme ömrü kaç yazım bakmak lazım, fikir vermesi açısından 16f877 de program belleğine yazma silme bir milyon defa yapılabiliyor, bunu yapmaya zaten kimsenin ihtiyacı olmaz, normal koşullarda ömrü yetmez, yani ihtiyacı karşılamanın üzerinde bir yazma-silme ömrü ile bellekler üretiliyor diyebiliriz. Bu arada siz enerjinin ne zaman kesileceğini bilmediğiniz için (öyle farzediyorum) her yeni sayma değerini eeproma kaydetmelisiniz, sleep moda almada ccs de nasıl yapılır bilmiyorum. Acemi iseniz programı adımlara bölüp yazmanız daha kolay olacaktır mesela öncelikle enerji kesilmesini dikkate almadan kendiliğinden 1-9 sayan bir sayıcı, sonra 1-99, 1-999, 1-9999 yapar simulasyon veya devre üzerinde denersiniz sonra anahtarla arttırıp azaltma işini dahil edersiniz, sonra 1-9 sayıcıda sayılan değeri eeproma kaydederek anahtarlı arttırıp azaltma yapar enerji kesip tekrar enerji verip son değeri eepromdan okur programı denersiniz daha sonra 1-9999 a doğru gidersiniz, yada nasıl aklınıza yatıyorsa öyle yapabilirsiniz, ben kendi uyguladığım program yazma sistemimden örnek verdim, kolay gelsin.
 
Sakıncası olacağını sanmam ama kesin net bilgi için datasheete bakıp eeprom yazma-silme ömrü kaç yazım bakmak lazım, fikir vermesi açısından 16f877 de program belleğine yazma silme bir milyon defa yapılabiliyor, bunu yapmaya zaten kimsenin ihtiyacı olmaz, normal koşullarda ömrü yetmez, yani ihtiyacı karşılamanın üzerinde bir yazma-silme ömrü ile bellekler üretiliyor diyebiliriz. Bu arada siz enerjinin ne zaman kesileceğini bilmediğiniz için (öyle farzediyorum) her yeni sayma değerini eeproma kaydetmelisiniz, sleep moda almada ccs de nasıl yapılır bilmiyorum. Acemi iseniz programı adımlara bölüp yazmanız daha kolay olacaktır mesela öncelikle enerji kesilmesini dikkate almadan kendiliğinden 1-9 sayan bir sayıcı, sonra 1-99, 1-999, 1-9999 yapar simulasyon veya devre üzerinde denersiniz sonra anahtarla arttırıp azaltma işini dahil edersiniz, sonra 1-9 sayıcıda sayılan değeri eeproma kaydederek anahtarlı arttırıp azaltma yapar enerji kesip tekrar enerji verip son değeri eepromdan okur programı denersiniz daha sonra 1-9999 a doğru gidersiniz, yada nasıl aklınıza yatıyorsa öyle yapabilirsiniz, ben kendi uyguladığım program yazma sistemimden örnek verdim, kolay gelsin.

yardımın için çok teşekkür ederim
 

Forum istatistikleri

Konular
128,252
Mesajlar
916,211
Kullanıcılar
450,067
Son üye
ERENLER04

Yeni konular

Geri
Üst