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

Обсуждаем контроллеры компании Atmel.
Ответить
dima81
Родился
Сообщения: 11
Зарегистрирован: Пн фев 24, 2014 22:14:48

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

Сообщение 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;}
----------

Не понимаю в чём ошибка.
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3472
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

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

Сообщение smacorp »

dima81 писал(а):Необходимо, что бы уровень "1" устанавливался при значении переменной temp3 в диапазоне от 27 до 30
Честно говоря, не понятно. Если диапазон 27-30, что такое -9000?
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
dima81
Родился
Сообщения: 11
Зарегистрирован: Пн фев 24, 2014 22:14:48

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

Сообщение dima81 »

-9000 это тоже значение перменной temp3. Я датчики температуры опрашиваю ds18b20, при обрыве цепи датчика данная переменная равна -9999, так чтобы не заморачиваться принял -9000. Суть в том что на ноге должен быть уровень "0" если произошёл обрыв цепи датчика.
Аватара пользователя
smacorp
Друг Кота
Сообщения: 3472
Зарегистрирован: Вт окт 22, 2013 04:37:23
Откуда: Казань

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

Сообщение smacorp »

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

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

if (temp3>-9000) {
 PORTA.1=0;
} else {
   if (temp3>=27 && temp3<=30) {
    PORTA.1=1;
   } else {
      PORTA.1=0;
     }
  }
Платы для HLDI - установки лазерной засветки фоторезиста.
Фоторезист Ordyl Alpha 350
Жидкое олово для лужения плат (видео) - самое лучшее и только у меня.
Паяльные маски XV501T-4 и KSM-S6189 (5 цветов).
Заказ печатных плат - pcbsmac@gmail.com
dima81
Родился
Сообщения: 11
Зарегистрирован: Пн фев 24, 2014 22:14:48

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

Сообщение dima81 »

теперь постоянно уровень "0", но благодарю за наводку, понял в чём ошибка

надо так
if (temp3<=30 && temp3>=27 && temp3>-9000)
{PORTA.1=1;}
else {PORTA.1=0;}
vdavid
Мучитель микросхем
Сообщения: 410
Зарегистрирован: Чт ноя 13, 2008 16:33:42

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

Сообщение vdavid »

Только вот проверка && temp3>-9000 здесь совершенно лишняя :) .
Ответить

Вернуться в «AVR»