Eseményre várakozás

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Válasz küldése
Áron
Újonc
Újonc
Hozzászólások: 1
Csatlakozott: 2014. április 10. csütörtök, 15:05

Eseményre várakozás

Hozzászólás Szerző: Áron »

Nem tudtam megoldani, azt, hogy a program szenzorra várjon. Lehetséges ilyen?
Àron
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Segítsen aki tud!

Hozzászólás Szerző: Robert »

Off: Címet javítottam

Pl. While paranccsal:

Kód: Egész kijelölése

var = 0;
while(var < 200){
  // do something repetitive 200 times
  var++;
}
És itt a var: a szenzorod adott paramétere. A var++ nem kell a kódba ekkor.
kkonrad
DrótVégénSzéndarab
Hozzászólások: 24
Csatlakozott: 2014. március 1. szombat, 14:47

Re: Eseményre várakozás

Hozzászólás Szerző: kkonrad »

Sziasztok!

És egyébként While ciklusban két feltételt össze lehet kötni VAGY jellel?
Konkrétan azt szeretném, hogy egy kimenetre adjon magas jelet addig amíg a szenzor nem változik, de maximum csak 3 másodpercig. Után mindenképpen lépjen ki a ciklusból.

Kód: Egész kijelölése

while (b != 1 || var < 62000) 
     {
        hanyadikseb(); digitalWrite(z, HIGH); hidraulika(); var++;
     }
Ez így viszont nem működik.
Esetleg valami más ötlet?
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: Eseményre várakozás

Hozzászólás Szerző: kapu48 »

És igy?:

Kód: Egész kijelölése

while ((b != 1) || (var < 62000))
kkonrad
DrótVégénSzéndarab
Hozzászólások: 24
Csatlakozott: 2014. március 1. szombat, 14:47

Re: Eseményre várakozás

Hozzászólás Szerző: kkonrad »

kapu48 írta:És igy?:

Kód: Egész kijelölése

while ((b != 1) || (var < 62000))
Kipróbáltam, de így se jó.
Viszont azt vettem észre, hogy csak akkor lép ki a ciklusból, ha mindkét feltétel hamis lesz. Ebből kifolyólag a VAGY jelet ÉS-re cseréltem és így már működik szépen :D
Jobban belegondolva rosszul gondolkoztam....mert ugye a While ciklus hamis feltétel esetén lép tovább. Ugye logikai VAGY akkor hamis, ha mindkét feltétel hamis, ezért is nem hozta a várt eredményt. A logikai ÉS viszont akkor hamis, ha legalább az egyik feltétel hamis így azzal fasza :)

Viszont olyat lehet valahogy csinálni, hogy ne elszámoljon 62000-ig, hanem konkrétan 3 másodpercig menjen?
Válasz küldése