Tarama mantığı anlatılmış orada. Anlatmak istediğinizi tam olarak algılayamadım. Tuş tarama rutini sürekli olarak işlemeli yoksa herhangi bir zamanda hangi tuşa basıldığını algılamak mümkün olmaz.
Şöyle diyim mantık su yanlış anlamadiysam birinci satir basılmış mi hayır 2 te geç basılmış mi hayır diyelim ben program 3. Satıra geçtiğinde 2. Satırdaki tuşa bastım program onu algilayamayacak diye düşünüyorum ben onu anlayamadim
Evet aşağı yukarı aynı. Aşağıdaki şekil 4*4 keypad için ama mantık aynı sonuçta. ABCD çıkışları sıra ile aktif ediliyor. Sonrasında 1234 nolu girişler okunuyor. Diyelim ki önce A çıkışı aktif edildi 20ms bekleniyor bu süre içinde 1234 nolu girişler okunuyor diyelim ki 1 nolu girişten bilgi geldi böylelikle diyoruz ki keypaddeki 1 nolu tuşa basılmış. Sonrasında B çıkışı aktif edilip tekrar aynı işlemler uygulanıyor. Fakat bu rutin o kadar hızlı işliyor ki sizin bahsettiğiniz bekle olayının gerçekleşme olasılığı çok çok zayıf bir ihtimal oluyor.
Rutini yavaşlatmaya gerek yok. Her sütun aktif edildiğinde 20ms bekletip diğer sütuna geçseniz 1 saniyede 50 kere tarama yapılmış olur. Düşünebiliyor musunuz.. Pic bunu algılayacaktır yavaşlatma yapmanıza gerek yok.