button işlev

Başlatan eyt, 21 Nisan 2020, 04:12:32

eyt

Merhaba,

Bir button var diyelim sayacı artırıyor sayac 2 olduğunda led yanıyor. ard arda bastığımızda ledin yanması gerekiyor, bu olaya göre peki basılı tutulduğunda sayacın artmamasını nasıl bir mantık ile sağlanabilir?
Buton high oldu sayac 1 low çekildi tekrar bassıldı sayac 2 oldu. Sürekli high da kaldığında sayac artmasın low olmadan sayac artmasın yani

saygılarımla

ete

Meramını sanki zor yoldan anlatmışsın gibi geliyor bana.
Bu nedenle ne demek istediğini tam olarak anlayabildimmi emin olamadım.
Anlayabildiğim şu. Bir tuşa bastık. Basınca sayac artsın ama tuşu bırakmadan sayac tekrar artmasın. Kısaca her artıştan önce tuşun bir kez bırakılması kontrol edilsin.
Normal tuş kontrol mekanizmasında şöyle yapıyoruz;

IF TUS=0 THEN      'yani tuşa basılmış ise
  SAYAC=SAYAC+1    'sayac değerini bir artırıyoruz
  IF SAYAC=3  THEN SAYAC=0  'belirli bir seviyeye gelmiş sayac değerini sıfırlıyoruz.
  WHILE TUS=0:WEND      'işte burası önemli tuşa basılı tutuyor isek bırakıncaya kadar burada bekle diyoruz.
  PAUSE 100       'program bu satıra gelmiş ise tuş bırakılmış demektir. Burada Tuş titremesini engellemek için 100 ms bekleme yapıyoruz. Böylece titreme bitiyor
Endif
İstediğin bu sanırım. Açıklama kodların yanında mevcut. Tuşa basıyoruz basınce ne yapılacak ise onu yapıyoruz. Ardından tuşun bırakılıp bırakılmadığını kontrol ediyoruz ve gerekirse bırakılıncaya kadar programı orada bloke ediyoruz. Ardından tuş titremesini aşaak kadar bir gecikme koyuyoruz. İşimiz bitiyor. Tuş titremesi deyince onuda biraz açmak gerekiyor. Tuşa bastığınız yada bıraktığınız anda tuş kontakları yüzlerce kez birleşir bırakır. Bu birleşip bırakma işi o kadar hızlı olurki siz bunu gözle göremezsiniz ama gerçekten basbırak işi anlık olarak tekrarlanır ve programınız hızlı ise bu konumda yeniden tuşa basılmış gibi algılama yapabilir. BU yüzlerce kez kontak birleşimi yaklaşık 60-80 ms sürer. Dolayısıyla oraya 100 ms lik bir gecikme koyarsanız süre bitiminde tuş titremeside bitmiş olacağından işleminize sorun kalmadan devam edersiniz.

Ete

Powered by EzPortal