if şartından çıkma

Başlatan hkn_blt, 24 Ocak 2021, 19:06:14

hkn_blt

Arduinoda şöyle bir kod olsun;

void loop(){

if(sayac==10) {
işlemler......
}
}

sayac değişkeni 10 olduğunda if'e girdi diyelim if şartındaki işleri yapacak sayacı sıfırlamadan if blogundan nasıl kurtulabilirim ? 
Sayacı ekrana yazdırdığım için sıfırlama yapamıyorum. Sayac 10 olunca sürekli if'de takılı kalıyor bu yüzden.

94onur94

if koşulu içine sayaç ile birlikte bir flag değişkenini and ile sorgulayabilirsin. Koşul içine girdiğinde flag'i false yaparsan sayaç 10 olsa dahi if koşulu içine girmez.

if(sayac==10 && flag==1) {
   işlemler......
   flag = 0;
}

hkn_blt

Bu şekilde yaptık diyelim tekrar if içine nasıl gircez bu seferde ? Flag değişkenini 1 yapmak gerek bu seferde.

fide

Alıntı yapılan: hkn_blt - 24 Ocak 2021, 19:06:14Arduinoda şöyle bir kod olsun;

void loop(){

if(sayac==10) {
işlemler......
}
}

sayac değişkeni 10 olduğunda if'e girdi diyelim if şartındaki işleri yapacak sayacı sıfırlamadan if blogundan nasıl kurtulabilirim ? 
Sayacı ekrana yazdırdığım için sıfırlama yapamıyorum. Sayac 10 olunca sürekli if'de takılı kalıyor bu yüzden.

Soruyu yapmak istediğiniz işlemi anlatacak şekilde sorarsanız belki daha kapsamlı bir cevap bulunabilir. Bu şekilde tam cevap bulmanız zor.  :du:  :du:  :du:  :du:
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

hkn_blt

Alıntı yapılan: fide - 24 Ocak 2021, 20:52:28Soruyu yapmak istediğiniz işlemi anlatacak şekilde sorarsanız belki daha kapsamlı bir cevap bulunabilir. Bu şekilde tam cevap bulmanız zor.  :du:  :du:  :du:  :du:
2 adet sensörüm var biri artı yönde saydırmak için diğeri eksi yönde saydırmak için.
Sayac değeri 10 olunca alarm verdiriyorum. Sorun burda sayac 10 olunca sürekli if blogunun içinde kaldığı için sayacı tekrar artırıp azaltamıyorum sensörler ile. Sayacı sıfırlamadan if blogundan çıkmalıyım ki sayac artırıp azaltabileyim. Muhtemelen multitasking kullanmak gerekecek herhalde?

mufitsozen

Alıntı yapılan: hkn_blt - 24 Ocak 2021, 22:04:48Muhtemelen multitasking kullanmak gerekecek herhalde?

Hayir gerekmez!
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

MrDarK

void loop (void)
{
 if (Pdirection == 1)
 {
 Pdirection = 0;
 if(sayac != 10)
 sayac++;
 }
 else if (Ndirection == 1)
 {
 Ndirection = 0;
 if(sayac != 0)
 sayac--;
 }

 if(sayac == 10)
 {
 // islemler
 }
}

Bu kod hakkında ne düşünüyorsun ?
Picproje Eğitim Gönüllüleri ~ MrDarK

muhittin_kaplan

"break" diye birşey var ama, ben mi yanlış düşünüyorum, soruyu mu anlamadım acaba ?

mufitsozen

Alıntı yapılan: muhittin_kaplan - 25 Ocak 2021, 19:46:36"break" diye birşey var ama, ben mi yanlış düşünüyorum, soruyu mu anlamadım acaba ?

Aynen. bir de 'while', 'continue', 'switch, case' filan da var!
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

aliveli

soru muallak bize malum olması gerekiyor galiba

muhtemelen işlemler..... dediği yerin içinde uzun gecikmeler var o yüzden işin içinden çıkamıyor.