Bu kodun anlamı nedir ?

Başlatan baran123, 07 Mart 2014, 12:54:51

baran123

Merhaba
anlamadıgım bır satır varacıklarsanız  sevınırım
while(input(pin_a0)
bunu anlamı "a0 dakı butona basmayı bekle" mı oluyor.

Kolay Gelsin

engineer42

a sıfır pininde + ya bağlı bi buton olsun. butona basınca while döngüsü içindeki kod işler. basmadığında da işlemez

Recep METE

Alıntı yapılan: baranekrem9 - 07 Mart 2014, 12:54:51
Merhaba
anlamadıgım bır satır varacıklarsanız  sevınırım
while(input(pin_a0)
bunu anlamı "a0 dakı butona basmayı bekle" mı oluyor.

Kolay Gelsin

Şu anlama gelir " butondan elini çekene kadar bekle", anlamına gelmektedir. Butona basıldığında sıçramalar"debounce" meydana gelir.Bunu önlemek için bu komut delay komutuyla kullanılmalıdır.Yoksa bir kez butona basarsın ama buton 3-5 kez basılmış gibi işlem yapabilir. Bunu önlemek için"delay_ms(5); while(input(pin_a0)); birlikte kullanılırsa daha kaliteli programlar ortaya çıkar.Saygılarımla.
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

baran123

#3
Çok teşekkür ederim yanı her bastıgımda değişkeni bir arttıracak kod şu şekildemi olur ? cunku ben direk ifle yapıyorum ve fazla delay koymama rağmen cok parazit problemi oluyor

int i;
            while(input(pin_a0))
            {
               delay_ms(5);
               i++;
            }


Kolay gelsin

Recep METE

#4
Alıntı yapılan: baranekrem9 - 08 Mart 2014, 02:44:13
Çok teşekkür ederim yanı her bastıgımda değişkeni bir arttıracak kod şu şekildemi olur ? cunku ben direk ifle yapıyorum ve fazla delay koymama rağmen cok parazit problemi oluyor

int i;
            while(input(pin_a0))
            {
               delay_ms(5);
               i++;
            }


Kolay gelsin


int i;  // değişken tanımlanıyor.

if(input(pin_a0))// eğer a0 pinine basıldıysa,
{
delay_ms(10);//buton parazitlerini önlemek için küçük bir gecikme
while(input(pin_a0));// butondan elini çekene kadar bekle
i++;//i değişkenini bir artır.
}
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

baran123

#5
böyle yaptıgım zaman butona basıyorum cok hızlı bir şekilde artıyor delayı arttırmalımıyım ?
söyle yaptım

if(input(btn1))
         {
            delay_ms(10);
            while(input(btn1))
            {
               p1++;
               lcd_gotoxy(12,2);
               printf(lcd_putc,"%d",p1);
               if(p1 == 9){p1 = -1;}
            }
         }

tekosis

if(input(btn1))
         {
            delay_ms(10);
            while(input(btn1))
            {
               p1++;
delay_ms(200); //böyle bir değer butona basıldığı sürece yaklaşık her 200msn de bir sayının artmasını sağlar.
               lcd_gotoxy(12,2);
               printf(lcd_putc,"%d",p1);
               if(p1 == 9){p1 = -1;}
            }
         }
İlim ilim bilmektir, ilim kendin bilmektir, sen kendin bilmezsin, bu nice okumaktır.