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.
Szintaktika
Re: Szintaktika
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.
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