Страница 1 из 1

Включение ноги по условию ?

Добавлено: Ср май 20, 2015 17:33:27
dima81
Прошу помощи форумчан.
Написал условие установки ноги мк в "1", но при любом значении переменной до -9000, на ноге уровень "1". Необходимо, что бы уровень "1" устанавливался при значении переменной temp3 в диапазоне от 27 до 30

-----------------
if (temp3<=30 || temp3>=27 && temp3>-9000)
{PORTA.1=1;}
else {PORTA.1=0;}

---------------
if (temp3>-9000)
{
if (temp3<=30 || temp3>=27)
{
{PORTA.1=1;}
}
else {PORTA.1=0;}
}
else {PORTA.1=0;}
-----------------

Не понимаю в чём ошибка.

Re: Включение ноги по условию ?

Добавлено: Ср май 20, 2015 17:41:05
smacorp
dima81 писал(а):Необходимо, что бы уровень "1" устанавливался при значении переменной temp3 в диапазоне от 27 до 30
Честно говоря, не понятно. Если диапазон 27-30, что такое -9000?

Re: Включение ноги по условию ?

Добавлено: Ср май 20, 2015 17:51:23
dima81
-9000 это тоже значение перменной temp3. Я датчики температуры опрашиваю ds18b20, при обрыве цепи датчика данная переменная равна -9999, так чтобы не заморачиваться принял -9000. Суть в том что на ноге должен быть уровень "0" если произошёл обрыв цепи датчика.

Re: Включение ноги по условию ?

Добавлено: Ср май 20, 2015 18:15:24
smacorp
dima81 писал(а):при обрыве цепи датчика данная переменная равна -9999, так чтобы не заморачиваться принял -9000. Суть в том что на ноге должен быть уровень "0" если произошёл обрыв цепи датчика
Чтобы не ломать мозг скобками, по-простому можно так:

Код: Выделить всё

if (temp3>-9000) {
 PORTA.1=0;
} else {
   if (temp3>=27 && temp3<=30) {
    PORTA.1=1;
   } else {
      PORTA.1=0;
     }
  }

Re: Включение ноги по условию ?

Добавлено: Ср май 20, 2015 19:23:56
dima81
теперь постоянно уровень "0", но благодарю за наводку, понял в чём ошибка

надо так
if (temp3<=30 && temp3>=27 && temp3>-9000)
{PORTA.1=1;}
else {PORTA.1=0;}

Re: Включение ноги по условию ?

Добавлено: Чт май 21, 2015 07:23:17
vdavid
Только вот проверка && temp3>-9000 здесь совершенно лишняя :) .