buton denemesi

Başlatan armsistem, 12 Aralık 2011, 00:22:45

armsistem

Arkadaşlar merhaba , devrede üç buton var +,- ve onay fakat arttırma butonuna bastığımda değer bir anda çok artıyor anca delay koyarak çözebiliyorum.

Çalışmıyor
#define p109	LPC_GPIO1->FIOPIN & 0x01<<9
while (!(p109)){tip=tip+1;while(p109);}



Çalışmıyor
#define p109	LPC_GPIO1->FIOPIN & 0x01<<9
while (!(p109)){tip=tip+1;}while(p109);




Çalışan
#define p109	LPC_GPIO1->FIOPIN & 0x01<<9
while (!(p109)){tip=tip+1;DelayMs(1000);}

mozkan87

Hocam bu sistem sadece arm için olan bir şey değil. delay koymak en basit çözümdür ancak daha kullanışlı çözümler mevcuttur. Butonun bırakılmasını beklemek ve işlemi daha sonra gerçekleştirmek yada buton basıldığı zaman bir sayaç başlatıp bu sayacın belirli değerlerinde işlemi gerçekleştirmek yada bbuton bir kez basıldıktan sonro bırakılana kadar butonun yapacağı işlemi pasifleştirmek gibi değişik metodlar geliştirilir ve duruma uygun olanı kullanılır.

Seckin ALAN

while(butona basıldımı)
{
if (buton bırakıldımı) {işlemler}
}
Kar taneleri ne güzel anlatıyor, birbirlerine zarar vermeden de yol almanın mümkün olduğunu.. Mevlana

haydarpasamikro

mikroişlemci, saniyede milyonlarca komut yorumlar. Bu sebeple bir butonun test edilmesi sadece mikrosaniyerde tamamlanır. Bir insanın bir tuşa basma sıklığı ve basık kalma sürelerinin geçerli limitlerde olması gerekir. Mesela bir insan bir butona 1ms sürede basıp bırakamaz. Bu bir parazitik etki olarak değerlendirilebilir.
Ben bir tuşu okumak için timer kullanırım ve tuşa baılınca timer sayar. Süre dolmadan tekrar basılması kabul görmez ve tuşun geçerli olabilmesi için enaz 50ms gibi tuş basılı kalmış olması timer ile beklerim.
Mikro Dünyası.Haydarpaşa Teknik ve Endüstri Meslek Lisesi Mikrodenetleyici Atl. Şefi