Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d

Ana Menü

Tuş tarama

Başlatan 94onur94, 06 Ekim 2013, 14:55:54

94onur94

Yapmak istediğim her tuşa basıldığında x değişkenini 1 arttırmak ama bastığım anda bazen 2 değer bazen 3 değer artıyor delay ile de bekleme yapmak istemiyorum.
char tus=0;
char keypad_oku()
{
output_c(0x00);
output_high(sat1);
if (input(sut1))
{delay_ms(20); tus=1; x=x+1;}
if (input(sut2))
{delay_ms(20); tus=2; x=x+1;}
if (input(sut3))
{delay_ms(20); tus=3; x=x+1;}
output_low(sat1);

output_high(sat2);
if (input(sut1))
{delay_ms(20); tus=4; x=x+1;}
if (input(sut2))
{delay_ms(20); tus=5; x=x+1;}
if (input(sut3))
{delay_ms(20); tus=6; x=x+1;}
output_low(sat2);

output_high(sat3);
if (input(sut1))
{delay_ms(20); tus=7; x=x+1;}
if (input(sut2))
{delay_ms(20); tus=8; x=x+1;}
if (input(sut3))
{delay_ms(20); tus=9; x=x+1;}
output_low(sat3);

output_high(sat4);
if (input(sut1))
{delay_ms(20); tus=10; x=x+1;}
if (input(sut2))
{delay_ms(20); tus=0; x=x+1;}
if (input(sut3))
{delay_ms(20); tus=11; x=x+1;}
output_low(sat4);

return tus;
}
if(keypad_oku()!='\0')
{
printf(lcd_putc,"\f%d   %d",keypad_oku(),x);
}

Bayramsumbul

Merhabalar...Bunu Engellemek İçin Tuş Bırakılana Kadar Bekleyebilirsiniz..Yani;
....//Tuş Okundu İşlemler Yapıldı.
while(keypad_oku==tus);//Önceki Okunan Tuş Aynı İse Bekliyoruz.

Bu Arada Kodun Tamamı Bu Değil Her Halde...Neyse İyi Çalışmalar Ve Kolay Gelsin.
Bir Elektronik Meraklısının Serüveni...

94onur94

Bekleme işlemini daha önceden denedim olmadı tuşu hiç görmüyor bu sefer kodun tamamı bu kadar değil.


Bayramsumbul

Pardon Bekleme İşlemini Yanlış Anlatmışım.Yani Bir Süre Değil.Şimdi Tuş Okundu ve Tuş Bilgisi Tus_verisi Adlı Değişkene Atıldı,İşlem Yapıldı,Burada Sürekli Tus Bilgisi Okuyoruz.(While(Keypad_Oku()!=tus_verisi);)Buradaki Amaç Tuş Bırakılana Kadar O Satırda Durmak.
Umarım Anlatabilmişimdir.
Bir Elektronik Meraklısının Serüveni...

94onur94

Aslında amacım hem tuş bilgisini okuyup hemde kaçıncı sefer tuşa basıldığını anlamak için x'i arttırmak ama x anlamsız bir biçimde artıyor delay koysam oluyor ama o zamanda yazılım stabil olmuyor.

94onur94

Tuşu algılamadan sonra 100ms gecikme koydum ve tuş okumayı direk keypad_oku() ile okuttum, tam istediğim gibi olmadı ama sorun çözüldü, teşekkürler...