Szintaktika

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Válasz küldése
Avatar
kolozsy
DrótVégénSzéndarab
Hozzászólások: 27
Csatlakozott: 2012. szeptember 6. csütörtök, 6:00

Szintaktika

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

Egy egyébként működő RS485 példaprogramban
https://www.gammon.com.au/forum/?id=11428
találom ezeket a sorokat:
----------------------------
// receive response
byte buf [10];
byte received = recvMsg (fAvailable, fRead, buf, sizeof buf);

digitalWrite (LED_PIN, received == 0); // turn on LED if error

// only send once per successful change
if (received)
old_level = level;
----------------------------

Ezt a sort nem tudom értelmezni: digitalWrite (LED_PIN, received == 0);
Segítene valaki? Esetleg ennek megfelelő érthetőbb, (hosszabb) alakba átírni?
Ha volt érvényes bejövő adat akkor - received = a byte-k számával,
ha nem érvényes vagy nincs vett adat akkor - received = 0

Másik (talán egyszerűbb):
if (received)
old_level = level;
Ez egyenlő ezzel?
if (received != 0) {old_level = level;}

Előre is köszönöm.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Szintaktika

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

A " received == 0" egy logikai kifejezés:
Ha received == 0 igaz, akkor értéke 1 vagy HIGH különben 0 vagy LOW.
Azaz a LED-et ki- vagy bekapcsolja.

if (received)....
Ha a received értéke 0, akkor ..... Ha nem 0 (azaz bármi más), akkor az else ág fut le.
http://www.tavir.hu - a gazda :)
Válasz küldése