Pic ile çalışan bir cihazın kullanımını sınırlamak?

Başlatan . Kağan, 28 Ağustos 2015, 18:56:51

. Kağan

Merhaba arkadaşlar.

Pic işlemci kullandığım bazı cihazların kullanımına sınır koymak istiyorum.

Örneğin: pic 50 defa açılıp kapanınca (enerjilenip enerjisi kesilince) "kullanım hakkınız sona erdi" uyarısı versin. Ve imalattan sonra 50 saat çalıştıktan sonra  "kullanım hakkınız sona erdi" uyarısı versin. Bunlar gibi sınırlamaları nasıl koyabilirim.  ???

Atilla

pic her enerjilendiğinde epromundaki değişkeni arttırıp sonra tekrar eproma yazdırırsanız istediğiniz sayıya ulaştığında uyarıyı verdire bilirsiniz

. Kağan

Eeprom'a Veri Kaydetme, Çağırma ve bu veriyi kullanma konusunda bilgiye ihtiyacım var. Daha önce hiç yapmadım. Örnekle açıklayabilirseniz sevinirim.

Atilla

eprom a veri yazarken picbasic de write okurken ise read komutunu kullaniyoruz
write adres,veri -> adresi yazarken kullanmış olduğumuz pic in boş olan rom alanını kullanmalisiniz. pic16F628 için 07 nolu adres uygundu. Aşağidaki program çalışıyor. Umarım işinizi görür.

oku var byte: oku = 0
read $07, oku
if oku <> 0 then
   oku = oku + 1
   else
   oku = 1
endif
write $07, oku

Basla:
      LCDOut $FE, $80, #oku, " kez acildi."
      pause 200
      goto basla
      end

ete

Çalışma sınırlaması koymanın çeşitli yolları var.
Bunlardan en etkili olanı belkide bir eprom hafızası kullanarak her açılışta o hafızadaki değeri bir artırıp geri kayıt etmektir.
Burada unutulmaması gereken husus, ilk okumada o hafıza değerinin 255 olarak okunacağıdır.
Bu durumda hafıza okunduktan sonra okunan değer 255 ise onu sıfır yapıp geri kayıt etmek gerekir. Kayıt etmeden önce kısıtlama değerine ulaşıp ulaşmadığı kontrol edilmeli, ulaşmış ise program sonsuz döngüye sokularak bloke edilmelidir.
Kısıtlama değerine ulaşılmamış ise sayıgeri kayıt edilerek ana program kısmına geçilmelidir.
Unutmayınki ileri program tecrübesi olanlar bu gibi durumlarda hemen eprlma bakarlar. epromda bir sayı var ise onun değerini değiştirerek kısıtlamadan kurtulabilirler. Bu sorunuda aşmanın yolları var elbet. Birincisi Eproma kod koruması koyarsınız. Böylece kimse epromu okuyamaz. Eproma kullandığınız kayıt adresinin üst ve alt kısımlarına  rastgele sayılar yazarsınız. Böylece inceleyenkişinin aklını karıştırırsınız. Kısaca kişinin kısıtlama değerine ulaşmasını güçleştirirseniz amacınıza ulaşmış olursunuz.

Ete

Atilla


Bahri Bilir

Bu arada eepromların belli bir kullanım ömürleri olduğunu olumuştum. Açıkcası ömürlerini sayısı büyükte olsa pic gibi saniyede çok yüksek hızda işlem yapan bir sistem için dikkatli kullanılması gereken bir durum.

Merakket ettiğim ise eepromların ömeürleri sadece yazılıp silindiğindemi düşüyor yoksa eepromdaki değer okunduğunda da ömürleri kısalıyor mu?

"Hedeflerin bittiği tek yer, YENİ hedeflerin başlangıcıdır"

ete

Eprom yazma ömrü 1 milyon defa dır. Her ne kadar bu 1 milyon olarak verilsede kesin değer değil. 800.000 de de ömrü biten eprom gördüm.

Ömür sadece yazma ile alakalı. Okuma işlemi ömürden yemiyor. Sadece yazma ömür tüketiyor.

Yeri gelmiş iken daha önceden değindiğim bir konuya yeniden değineyim. Bazı arkadaşlar epromu hafıza gibi kullanıyorlar. Her program döngüsünde değer değişsin değişmesin eproma kayıt yapıp sonra oradan yeri geldikçe okuma yapan bir çok kişi var. Bu tamamen yanlış bir uygulama. Eprom'a bilgi yalnızca gerektiği zaman yazılmalı. Eproma, yalnızca sonradan unutulmasını istemediğiniz bilgiler kayıt edilmeli. Sayaç tipi programlarda her sayaç değişimini eproma kayıt ederseniz ve sayacınızda hızlı çalışıyorsa eprom ömrü 1 saate kalmadan dolar ve sistem çalışamaz duruma gelebilir. Daima yazma sıklığını kontrol ediniz. Bir milyon çok gibi geliyor ama hızla çalışan bir programda her 100 ms de bir kayıt yapsanız 1 sn de 10 kayıt eder. Bu durumda ömür 100.000 sn eder ki buda yaklaşık 27 saat eder. Kısaca işlemci 2 gün çalışır sonunda eprom ömrü dolar. Bu tür durumlara dikkat etmek gerekir.


Ete

Powered by EzPortal