Buton un basılı durması?

Başlatan Franisto, 30 Haziran 2010, 16:14:34

Franisto

Arkadaşlar belki basit ama yardımınızı rica ediyorum. Basit bir örnekle sorunumu açıklayayım. iki buton 2 led bağlı pic e;

Tekrar:
IF buton1=1 THEN led1=1  'BTN1 BASILIRSA 1.LEDİ YAK DEĞİLSE BİRŞEY YAPMA
IF buton2=1THEN led2=1  'BTN2 BASILIRSA 2.LEDİ YAK  DEĞİLSE BİRŞEY YAPMA
led1=0   'LEDİ SÖNDÜR
led2=0   'LEDİ SÖNDÜR
GOTO Tekrar

Yukarıdaki kodlarda sorun yok Fakat sorun Butona basılı tuttuğum sürece ledin yanık kalmasını istiyorum. Bu durumda basılı tutulduğunda led yanıp yanıp sönüyor.

Pic Basic te X botunu basılı kaldığı sürece şu işleri yap nasıl kodlanır?

Franisto

Tekrar:
IF buton1=1 THEN GUSUB BTNKNTROL

GOTO Tekrar

BTNKNTROL:
LED1=1
IF buton1=1 THEN GOTO BTNKNTROL
LED1=0
RETURN


Böyle bir çözüm buldum. tabi tek buton için değil bu karmaşa 12 adet buton var projede. Daha basit bir mantık yada konut varmı?

ORC

#2
Pic basic kullanmayalı baya oldu kodları pek hatırlamıyorum ama asagıdaki c kodunun mantıgını uyarlayabilirsiniz sanırım
for(;;)//sonsuz dongu
{
     While(buton1==1)
    {
           Led1=1; //basılı tutuyorsanız burada kalacaktır cektiğiniz de devam edecekti
    }
    While(buton2==1)
   {
          Led2=1;
   }
	
   Led1=0;
   Led2=0;
}

Franisto


Maxim

en basitinden şöyle olabilir

Tekrar:

IF buton1=1 THEN
led1=1  'BTN1 BASILIRSA 1.LEDİ YAK DEĞİLSE BİRŞEY YAPMA
else
led1=0
Endif

IF buton2=1 THEN
led2=1  'BTN2 BASILIRSA 2.LEDİ YAK  DEĞİLSE BİRŞEY YAPMA
else
led2=0
Endif

GOTO Tekrar


chailuck

Alıntı yapılan: franisto - 30 Haziran 2010, 16:14:34
Arkadaşlar belki basit ama yardımınızı rica ediyorum. Basit bir örnekle sorunumu açıklayayım. iki buton 2 led bağlı pic e;

Tekrar:
IF buton1=1 THEN led1=1  'BTN1 BASILIRSA 1.LEDİ YAK DEĞİLSE BİRŞEY YAPMA
IF buton2=1THEN led2=1  'BTN2 BASILIRSA 2.LEDİ YAK  DEĞİLSE BİRŞEY YAPMA
led1=0   'LEDİ SÖNDÜR
led2=0   'LEDİ SÖNDÜR
GOTO Tekrar

Yukarıdaki kodlarda sorun yok Fakat sorun Butona basılı tuttuğum sürece ledin yanık kalmasını istiyorum. Bu durumda basılı tutulduğunda led yanıp yanıp sönüyor.

Pic Basic te X botunu basılı kaldığı sürece şu işleri yap nasıl kodlanır?


TRISA=$00
TRISB=$FF
LED1 VAR PORTA.0
LED2 VAR PORTA.1
BUT1 VAR PORTB.2
BUT2 VAR PORTB.3
LOOP:
WHILE but1=1 ; buton1 1 olduğu sürece
led1=1                ; led1 i yak
WEND
WHILE but2=1 ; buton1 1 olduğu sürece
led2=1
WEND
led1=0   'LEDİ SÖNDÜR
led2=0   'LEDİ SÖNDÜR
goto loop
END

bak bunuda kullanabilirsin  ;) isisde denedim
İmkanın sınırlarını görmek için imkansızı denemek lazım. (Fatih Sultan Mehmet)  Ayıplarını gördüğünüz komşuyu kınamayınız. Sırlarını açıklamayınız.Çünkü gördüğünüz bu sır size emanettir, emanete hıyanet kötü ve çirkin bir filldir. (Hacı Bayramı Veli )  meyve veren ağacın taşlanması çok hoş ;)