проблема с кодом

romavik
Offline
Зарегистрирован: 04.04.2015

Всем привет у меня проблема я написал код все провверил подключил провода а  неработает!                                    вот скетч                                                                                                                                                                         int led = 13;

int DigitalPin=50;
void setup()
{
 if (DigitalPin ==50,HIGH);
  pinMode(led,OUTPUT);
}
void loop()
{
  pinMode(led,LOW);
  if (DigitalPin ==50,HIGH);
  pinMode(led,HIGH);
}
 
andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Программа работает так, как ее написал программист. Но совсем не так, как он хотел ее написать.

С моей точки зрения, это не должно н только работать, но даже компилироваться.

Radjah
Offline
Зарегистрирован: 06.08.2014

Вот это вот комплируется? o_0

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

pinMode(led,LOW);   ????????????????

Попробуёте использовать грамматику языка.......
http://arduino.ru/Reference/PinMode 

http://arduino.ru/Reference/DigitalWrite

 

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

trembo пишет:

pinMode(led,LOW);   ????????????????

Попробуёте использовать грамматику языка.......
http://arduino.ru/Reference/PinMode 

http://arduino.ru/Reference/DigitalWrite
 

если грамматику заменить пивом, то оно работает #1255

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Radjah пишет:

Вот это вот комплируется? o_0

А почему нет? Не проверял, но на глаз не вижу чему здесь не компилироваться.

Radjah
Offline
Зарегистрирован: 06.08.2014

Меня вот это смущает:

if (DigitalPin ==50,HIGH);

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Radjah пишет:

Меня вот это смущает:

if (DigitalPin ==50,HIGH);

Ну, в языке же есть операция "запятая". Она здесь и использована. 

op1, op2, ..., opN;

Операции op1, op2, ...opN выполняются последовательно слева направо. Результатом всей операции будет результат самой правой (последней вычисленной) операции, т.е. opN.

В случае приведённого кода, будет выполнено сравнение DigitalPin==50, результат будет выброшен в мусорку, затем выполнится операция HIGH (это константа и результатом будет она же). Результат всей опреации "DigitalPin==50, HIGH" в целом - всегда HIGH. Т.е. данный IF можно смело заменять на if (HIGH) или просто выбрасывать. т.к. он всегда будет истинным.

Смысла негусто, но, с точки зрения компилятора, никаких проблем нет.

Radjah
Offline
Зарегистрирован: 06.08.2014

Я правильно понимаю, что туда можно запихнуть блок кода и в конце выплёвывать некоторое условие?

Хотя по идее праввильнее и читабельнее всё делать до if.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Не знаю правильно Вы понимаете или нет.

Почитайте что-нибудь, прежде, чем писать программы. Не готовые примеры, которых Вы не понимаете, а нормальную книжку по программированию. То, что у Вас здесь написано ... не знаю - набор букв - одна сплошная ошибка.

Radjah
Offline
Зарегистрирован: 06.08.2014

Ну извини, если я своими невежеством задел твою тонкую душевную организацию. Пойду голову пеплом посыплю.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Клапауций 999 пишет:

trembo пишет:

pinMode(led,LOW);   ????????????????

Попробуёте использовать грамматику языка.......
http://arduino.ru/Reference/PinMode 

http://arduino.ru/Reference/DigitalWrite
 

если грамматику заменить пивом, то оно работает #1255

#define HIGH 0x1
#define LOW  0x0
#define INPUT 0x0
#define OUTPUT 0x1
#define true 0x1
#define false 0x0

Ура !!!! Наконец-то Клапауций 999  разрешил всем писать так:

pinMode ( OUTPUT, HIGH );
digitalWrite ( HIGH , OUTPUT );

Но я так  не буду, простите меня.....

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Radjah пишет:

Ну извини, если я своими невежеством задел твою тонкую душевную организацию. Пойду голову пеплом посыплю.

Простите, я думал, что отвечаю ТС. Простите.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Radjah пишет:

Я правильно понимаю, что туда можно запихнуть блок кода и в конце выплёвывать некоторое условие?

Хотя по идее праввильнее и читабельнее всё делать до if.

Ну, конечно, так делать не стоит. Но, в принципе, можно хоть всю программу через запятую написать.

Radjah
Offline
Зарегистрирован: 06.08.2014

Диагноз по аватарке, ок.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Radjah пишет:

Диагноз по аватарке, ок.

Ну, зачем? Я же извинился и объяснил почему так вышло.

А то, что сказал ту фразу ТС - Вы со мною не согласны? Глядя на его код?

Radjah
Offline
Зарегистрирован: 06.08.2014

ЕвгенийП пишет:

Ну, зачем? Я же извинился и объяснил почему так вышло.

А то, что сказал ту фразу ТС - Вы со мною не согласны? Глядя на его код?

Я писал ответ еще до правки сообщения #13. За пояснения спасибо.

Andrey-S
Offline
Зарегистрирован: 02.01.2015

Это самый КРУТОЙ код, который я видел за все недолгое время знакомства с дуинкой)). Кстати, удивлен, что пухлявого тут еще нет))).