12F675 ile tek dokunmatik butondan şifreli kilit

Başlatan . Kağan, 30 Temmuz 2013, 00:03:11

. Kağan

       12F675'in bir ucunu kapasitif buton olarak kullanıp bu uçtan alınan dokunma sayısı ile çalışan bir şifreli kilit yapmak istiyorum.
Daha açık olmak gerekirse : 1 sn den daha az aralıklarla ard ardına basılan ve haneler arasında 1 saniye yada daha fazla beklenen bir sistem olacak. Mors kodu gibi düşünecek olursak;

dıt-dıt-dıt-   dat    -dıt-dıt-    dat -     dıt-dıt-dıt-dıt-   dat -     dıt
       3        bekle        2      bekle             4               bekle     1         =  3241   gibi çalışmasını istiyorum. Kod değiştirileceğinde 3 saniye uzun basıştan sonra aynı kod 2 defa doğru olarak girildiğinde onaylanacak. İşin mantığını kuramadım. Nasıl oluşturabilirim?

ete

Butonla belki yapılabilir ama dokunma yöntemi ile insana posteki saydırabilir bu sistem.
Sifre isimli bir word değişkenin olur. Ditsay isimli bir byte değişkenin olur. Dokunma yada buton kontrolün şöyle olur.
If dokun=0.   (Veya ıf tus=0)
Sayac=0
While tus=0
  Sayac=sayac+1
   If sayac=2000. (Veya 3000 her neyse) then atla
  Wend
   Ditsay=ditsay+1
Endif
Goto basla
ATLA:
Sifre=sifre*10+ditsay
Ditsay=0
If (sifre dig 3)>0 then islem tamam. Yani sifre girisi bitti
Goto basla

Lafla açıklarsak  dokun ve hemen bırak bir dıt saydıracak ama dokun bırakma gecikme yaptırıp senin beklemene karşılık gelecek ve bu bekleme ile sifre digitlerini elde edeceksin.
Açıklamanda dıt saydıktan sonra dokunma olmaz ise bekleme yapsın gibi bir ifade var buda mümkün ama doğrusu benim dediğim şekilde olur.
Dıt yapılmadığı zamanda bir baska sayac çalıştırırsan ve bu sayac değeri önceden belirlenmiş seviyeyi aşarsa goto atla dersin aynı şeyleri yapar.
Ete

Powered by EzPortal