Учусь программировать с нуля. Нужна помощь.

Dan_co

✩✩✩✩✩✩✩
1 Май 2020
15
1
упростим. условие проще описать так: если в буфере(все верно) порта что то есть и не важно сколько (там не биты, а байты) то делаем то, что в фигурных (операторных) скобках: ты читаешь буфер и его содержимое помещаешь в переменную data
Переменная data есть всегда, если в нее ничего не поместить , то она будет равна '' (это 2 одинарные кавычки, а не 1 двойная)
А потом условие заканчиается.
И начинается другое
f (data > 5)
data изначально больше 5 ? data пустая, значит нет, - выполняется else
и повторный круг loop
как только ты вводишь что то, то это что то помещается в data, и будет всегда больше 5.
И опять по кругу
Привет, спасибо за твои ответы.
C++:
char data;

void setup ()
{
  Serial.begin(9600);
}

void loop () {
  if (Serial.available() > 0)
  {
    data = Serial.read();
    if (data - '0' > 5)
    {
      Serial.println("More");
    }
    else
    {
      Serial.println("nope");
    }
  }
  }
Этот код работает так как я хотел.
Я расставил скобки и решил проблему с цифровым значением.
Однако, имея результат, который хотел, я все равно не понял почему монитор порта не отправляет мне результат в бесконечном цикле
Спасибо за помощь.
З.Ы.
"нет конца строки" выводит значение один раз, а не два, как было.
 

Dan_co

✩✩✩✩✩✩✩
1 Май 2020
15
1
Я не понял что ты не понял. Поясни
Как только я начал изучать условия - монитор порта мне выводил все бесконечными строками, циклично. Сейчас, расставив правильно скобки, монитор выводит мне одно значение. Думаю это и ответ на мой вопрос - правильно расставленные скобки.
Но если это функция(?) Loop, то цикл бесконечный, значит и условие в этом цикле проверяется бесконечно и всегда в монитор должно выводиться проверенное значение, превращая монитор в бесконечное обновление одного и того же, как это было. Но правильно расставив скобки, оно проверяется лишь раз, когда я ввожу значение? думаю нет.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,192
1,281
Москва
Как только ты считываешь значение из монитора порта функция Serial.available выдает значение 0. Все, ты все считал. если забыл - твои проблемы, она свое дело сделала. А раз читать нечего. то внутрь условия ты не попадешь.
Попробуй пройти цикл loop шаг за шагом пару раз записывая на листочке значения переменных
 
  • Лойс +1
Реакции: MrBob

kalobyte

★★★✩✩✩✩
1 Янв 2020
726
146
если ты п еред последней скобкой внизу поставиш еще одну строку сериал, то будет выводить бесконечно

а в данном случае выводит только когда в порт что-то пришло и за это отвечает функция Serial.available()
 
  • Лойс +1
Реакции: Dan_co и MrBob

Dan_co

✩✩✩✩✩✩✩
1 Май 2020
15
1
Доброго времени суток, могу я получить ответ на вопрос: Почему, используя библиотеку GyverButton, мой одинарный клик по кнопке не засчитывается? То есть я кликаю два раза - монитор порта возвращает мне - single, я кликаю три раза, монитор - double, и так далее?
Заранее спасибо!
 

kalobyte

★★★✩✩✩✩
1 Янв 2020
726
146
наверное марс не вышел еще на линию с сатурном и надо немного подождать
 

Wolf15

✩✩✩✩✩✩✩
3 Июн 2020
14
0
привет, я учусь програмирувать по урокам Заметки Ардуинщика. І у меня не получаетса повторить урок 7. видает ошибку помогите
 

Вложения

Vintik

✩✩✩✩✩✩✩
16 Мар 2020
2
0
Здравствуйте.
Пожалуйста, подскажите что означают (или как правильно нагуглить) эти строки внутри структуры там где разделение двоеточием внутри структуры, что это означает?

C++:
enum ParamType { PT_FLOAT, PT_BYTE, PT_BOOL }; // Перечисляем все возможные типы 

 typedef struct _procesBut {     

  ParamType pType;     

_procesBut(void(*cb)(char), float * p, const char *st) :  on_click(cb), param(p), title(st) { pType = PT_FLOAT; }     

_procesBut(void(*cb)(char), byte * p, const char *st) :  on_click(cb), param(p), title(st) { pType = PT_BYTE; }     

_procesBut(void(*cb)(char), bool * p, const char *st) :  on_click(cb), param(p), title(st) { pType = PT_BOOL; }



 ......



} ProcesBut ;
 

b707_2

★★✩✩✩✩✩
22 Июл 2020
182
51
каждая строчка - вариант конструктора структуры с разными аргументами, а после двоеточия - список инициализации параметров
Подробнее - в любом учебнике по С++, списки инициализации класса
Например
https://ravesli.com/urok-117-spisok-initsializatsii-chlenov-klassa/
 
  • Лойс +1
Реакции: Vintik

Alex13

★✩✩✩✩✩✩
11 Мар 2020
16
17
В Blynk-овскую прошивку для ESP32 как еще добавить HTTP-клиента? Чет не получается GET-запрос сделать