Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Cortex ARM => Konuyu başlatan: armsistem - 12 Aralık 2011, 00:22:45

Başlık: buton denemesi
Gönderen: armsistem - 12 Aralık 2011, 00:22:45
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);}
Başlık: Ynt: buton denemesi
Gönderen: mozkan87 - 12 Aralık 2011, 00:37:46
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.
Başlık: Ynt: buton denemesi
Gönderen: Seckin ALAN - 12 Aralık 2011, 01:24:54
while(butona basıldımı)
{
if (buton bırakıldımı) {işlemler}
}
Başlık: Ynt: buton denemesi
Gönderen: haydarpasamikro - 12 Aralık 2011, 10:38:29
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.