Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: karol 29. 07. 2012, 11:07:37
-
Dobry den
Mohol by mi niekdo najst chybu v programe.Nechce mi to zapnut led aj ked splnym podmienku if.
int Parkovacky = A0;
int Stretavacie = A1;
int Mazanie = A2;
int Stava = A3;
int stav = LOW;
int t = 1500;
void setup() {
pinMode(Parkovacky, OUTPUT);
pinMode(Stretavacie, OUTPUT);
pinMode(Mazanie, INPUT);
pinMode(Stava, INPUT);
Serial.begin(9600);
}
void loop() {
//Serial.print(stav );
Serial.print(Mazanie );
Serial.print(Stava );
//int stav = digitalRead(Mazanie);
//int stav = digitalRead(Stava);
if (digitalRead(Mazanie=LOW) && digitalRead(Stava=HIGH)) digitalWrite(stav, HIGH);
//if (digitalRead(Mazanie=HIGH) || digitalRead(Stava=HIGH)) digitalWrite(stav, HIGH);
if (stav == LOW) {
delay(t);
digitalWrite(Parkovacky, LOW);
delay(t);
digitalWrite(Stretavacie, LOW);
}
else {
delay(t);
digitalWrite(Stretavacie, HIGH);
delay(t);
digitalWrite(Parkovacky, HIGH);
}
}
-
digitalRead(Mazanie=LOW) && digitalRead(Stava=HIGH)
"=" slouzi na prirazeni hodnoty promene, == k porovnavani, navic chces urcite porovnavat navratovou hodnotu z digitalRead() s LOW a ne Mazani s LOW, takze ne digitalRead(Mazanie == LOW) ale digitalRead(Mazanie) == LOW
a misto tech
int Parkovacky = A0;
int Stretavacie = A1; atd.
by bylo lepsi pouzit #define
-
ještě dodatek, že operátor = vrátí vždy true, pokud se podaří přiřadit.
int cislo = 3;
if (cislo = 4)
{
printf("hehe"); // 4 do int dát lze => tohle se provede vždy
}
-
ještě dodatek, že operátor = vrátí vždy true, pokud se podaří přiřadit.
To bych nerekl
int cislo = 3;
if (cislo = 4)
{
printf("hehe"); // 4 do int dát lze => tohle se provede vždy
}
udela v podstate to same jako
int cislo = 3;
cislo = 4;
if (cislo)
{
printf("hehe"); // 4 do int dát lze => tohle se provede vždy
}
-
ještě dodatek, že operátor = vrátí vždy true, pokud se podaří přiřadit.
To bych nerekl
int cislo = 3;
if (cislo = 4)
{
printf("hehe"); // 4 do int dát lze => tohle se provede vždy
}
udela v podstate to same jako
int cislo = 3;
cislo = 4;
if (cislo)
{
printf("hehe"); // 4 do int dát lze => tohle se provede vždy
}
nepochopil jsi. bylo to dane jako rozdil oproti "spravnemu":
int cislo = 3;
if (cislo == 4)
{
printf("hehe"); // 4 do int dát lze => tohle se provede vždy
} else {
printf("ne, cislo neni 4. priradili jsme tam 3");
}
-
Porad nechapu, prece kdyz napisu if(a=0); tak podminka nebude splnena, takze bych rekl ze "ještě dodatek, že operátor = vrátí vždy true, pokud se podaří přiřadit." neplati.
-
Porad nechapu, prece kdyz napisu if(a=0); tak podminka nebude splnena, takze bych rekl ze "ještě dodatek, že operátor = vrátí vždy true, pokud se podaří přiřadit." neplati.
Dost chaotický příspěvek, ale pokud vím, operátor = vrací jako výsledek to co má na pravé straně.
takže if (a=0) je stejné jako if (0). A platí, že if se provede jen tehdy, když podmínka je různá od nuly.