Szintaktika

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

Szintaktika

HozzászólásSzerző: kolozsy » 2017. augusztus 13. vasárnap, 19:32

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: 9870
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: Szintaktika

HozzászólásSzerző: Robert » 2017. augusztus 14. hétfő, 4:33

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 :)


Vissza: “Arduino / C-nyelvű programozás (AVR-Duino, EthDuino, Arduino, Diecimila)”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 2 vendég