16f877a buton lcd 4x20 ileri geri sorunu

akay989

Üye
Katılım
23 Eyl 2013
Mesajlar
78
Puanları
1
Yaş
37
Selamlar arkadaşlar switch case modunda menü basamaklarını ileri geri saydırmak istediğimde (ileri) olarak tanımladığım butona bastıktan 4-6sn sonra işlem yapıp Lcd ekranda atladığını görüyorum.

If(input(ileri))
{
while(input(ileri);
Delay_ms(30);
...
...
...
}

Şeklinde ancak dediğim gibi 4-6sn sonra menü bir sonraki basamağa geçiyor, esc veya enter a bastığımda hiçbir sorun yok, direk üst menüye veya alt menüye geçiyor. Sadece “buton ile” sayma noktasında sorun yaşıyorum. Sadece if ile sayma yapmak istediğimde hiç bir sorun yok. Gayet güzel taramalı tüfek gibi kaydırıyor menüyü[emoji28]
do while ile denedim
Kesme koyup denedim olmadı
Delay ı iptal ettim olmadı...
4mhz xt 33pf kondansatör ile kullanıyorum clock için.
tüm sigortalar kapalı..
Voltaj 4.7lere düşüyor bazen sorun bundan kaynaklı olabilir mi?
Çözüm önerilerinize ihtiyacım var..
 
while sonundaki ; kaldır. While kullanmana gerek yok. İleri butonunu görmüş ise 200ms delay yapman yeterli (20 ms debounce, diğeri parmağını basma süren)
 
while sonundaki ; kaldır. While kullanmana gerek yok. İleri butonunu görmüş ise 200ms delay yapman yeterli (20 ms debounce, diğeri parmağını basma süren)
While kaldırıp gecikme koyduğunda değil 200, 1000ms yaptığımda dahi saymaya devam ediyor
IMG_6813.JPG
 
Ayrıca “enter” a 2000ms gecikme koymama rağmen bir alt menüye giriyor.. bunu önlemek için ikinci bir enter2 koymak zorunda kaldım. Farklı algoritmalar denedim M_sn değişkeni kullandım enter a bastığında 0lansın alt menüye girmek için m_sn 2nin üzerinde olsun, while denedim yok .. şu sayma işlemindeki yavaş atlama sorunuyla, şu sorunu çözemedim arkadaş
 

Forum istatistikleri

Konular
129,811
Mesajlar
930,329
Kullanıcılar
452,618
Son üye
mberber

Yeni konular

Geri
Üst