While sonsuz döngüsünden nasıl çıkarım

BurAkyuz

Yeni üye
Katılım
25 Tem 2019
Mesajlar
5
Tepkime puanı
0
Puanları
1
Konum
İstanbul
Arkadaşlar Merhaba,
IR Modül kullanarak bir devre yapmak istedim kumanda da bir tuşa basınca kod gereği while (1) sonsuz döngüsüne giriyor benim de istediğim bu zaten ama girdiği gibi de yine kumandadan bir tuşa basınca döngüden çıkmasını ve kaldığı yerden devam etmesini istiyorum.
Sonuç olarak While(1) sonsuz döngüsünden nasıl çıkarım yardımcı olursanız sevinirim.
 

amenofis

Yeni üye
Katılım
18 Tem 2019
Mesajlar
22
Tepkime puanı
4
Puanları
3
Konum
Bursa
1 true, yani sonsuz demektir zaten. 1 yerine uygun bir koşul yazacaksınız. Şunun gibi;

while (!kumandaninTusunaBasildi())
{
...
 

BurAkyuz

Yeni üye
Katılım
25 Tem 2019
Mesajlar
5
Tepkime puanı
0
Puanları
1
Konum
İstanbul
1 true, yani sonsuz demektir zaten. 1 yerine uygun bir koşul yazacaksınız. Şunun gibi;

while (!kumandaninTusunaBasildi())
{
...
Giriş kodu
Kod:
if(results.value == buton) {
While(1)
Yapılacak iş

}
Yapmak istediğim yine aynı butona basınca döngüden çıkması
 

amenofis

Yeni üye
Katılım
18 Tem 2019
Mesajlar
22
Tepkime puanı
4
Puanları
3
Konum
Bursa
if(results.value == buton) {
do {
Yapılacak iş
}
while(results.value != buton);
}
 

BurAkyuz

Yeni üye
Katılım
25 Tem 2019
Mesajlar
5
Tepkime puanı
0
Puanları
1
Konum
İstanbul
if(results.value == buton) {
do {
Yapılacak iş
}
while(results.value != buton);
}
Şimdi de döngünün içine bir defa giriyor. yapılacak olan işi sürekli yapmıyor.
Benim istediğim butona bir kez basınca sürekli ledlerin sürekli yanıp sönmesi aynı butona tekrar basınca da sönmesi
 

amenofis

Yeni üye
Katılım
18 Tem 2019
Mesajlar
22
Tepkime puanı
4
Puanları
3
Konum
Bursa
Demekki results.value butonu bırakınca güncellenmiyor. Ya da butonu bir döngü süresinden daha fazla basılı tutuyorsun. Detaylı yanıt verebilmek için hem kumandayı, hem kütüphaneyi bilmek gerekiyor maalesef.
 

BurAkyuz

Yeni üye
Katılım
25 Tem 2019
Mesajlar
5
Tepkime puanı
0
Puanları
1
Konum
İstanbul
Pe
Demekki results.value butonu bırakınca güncellenmiyor. Ya da butonu bir döngü süresinden daha fazla basılı tutuyorsun. Detaylı yanıt verebilmek için hem kumandayı, hem kütüphaneyi bilmek gerekiyor maalesef.
Peki ben bu kodu while kullanmadan başka bir yoldan yapamazmıyım
 

Oğuzhan

Yeni üye
Katılım
23 Tem 2019
Mesajlar
12
Tepkime puanı
4
Puanları
3
Konum
Gaziantep
Aşağıdaki kodu kendi sistemine göre düzenleyip denermisin.
Bu kod kumandanın butonuna basıldığı zaman çıkışın durumunu tersleyip kalıcı işlem yapar.
Yani çıkış LOW durumunda ise butona basıldığı zaman çıkışı HIGH yapar ve bu durumu saklar.
Yada çıkış HIGH durumunda ise aynı butona basıldığı zaman çıkışı LOW yapar ve bu durumu saklar.
xxx yerine programda tanımlı ismi yazacaksın.

if (results.value == BUTON1)
{
digitalWrite(xxx, !digitalRead(xxx));
}
 

alio1984

Yeni üye
Katılım
9 Ağu 2019
Mesajlar
7
Tepkime puanı
0
Puanları
1
Konum
istanbul
Konu çözüldümü bilmiyorum ama, if- while dongüsüyle yapabilirsin. ilk if döngüsüne buton basılınca girsin sonrasında ikinci while dongüsüne çalışması gereken programı yaz.

if (buton ==HIGH) // if dongusunun kosulu butana basılınca girsin.
{
while ( buton==LOW) // while dongusunun kosulu butona basınca çıksın.
{
yapılacak işlemler
}
}

Teşekkürler
Ali
 

xbrknx

Üye
Katılım
16 Tem 2019
Mesajlar
78
Tepkime puanı
16
Puanları
8
Konum
istanbul
@amenofis in dediği gibi kodun tamamını görmeden nerden nereye nasıl atlanıyo bilinmez bu sorunda çözülmez :)
 
Üst