User Tag List

Показано с 1 по 10 из 42

Тема: Вопросы начинающего Ардуинщика...

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #19
    SoftWareGuy
    Гость

    По умолчанию

    Цитата Сообщение от SoftFelix Посмотреть сообщение
    Почему именно const int?
    Считается хорошим тоном в программировании на Си++ делать константным всё, что не должно меняться по ходу выполнения программы. В общем то это не обязательно, просто в силу привычки так написал. Можно вынести отдельным дефайном, если хочется.

    Цитата Сообщение от SoftFelix Посмотреть сообщение
    bool ???
    Определяется переменная isSuccess логического типа - в ней будем хранить результат всей этой операции - успешный ли был прием или нет.

    Цитата Сообщение от SoftFelix Посмотреть сообщение
    Вот это вообще не понял. Тут цикл на 5? У нас же 3 байта
    Смысл в том, что эти 3 байта могут быть еще не доступны в момент опроса Serial.available(). Если мк на том конце тупит и отправляет с задержками, то Там может быть 1 байт или 2, а может быть и 3 - если повезет. Чтобы исключить фактор "везения-невезения" (то есть рандом) нужно сделать несколько попыток считать данные.
    Мы все равно не считаем больше заданного предельного количества байт - там есть проверка на это. То есть случилось чудо и при первой же попытке вычитали все три байта, то выходим из цикла (строка с if (numBytesReceived == NumBytesToReceive) ).

    Цитата Сообщение от SoftFelix Посмотреть сообщение
    А почему char ?
    Считывается один байт. Char как раз имеет разрядность 8 бит, можно конечно сохранять и в int, но это не имеет смысла - на восьмибитных контроллерах int равен 2 байтам, это лишнее место на стеке.

    Цитата Сообщение от SoftFelix Посмотреть сообщение
    Можно словами описать алгоритм этого кода или более подробно в комментариях?
    Все просто. Читаем данные до тех пор пока не прочитаем все 3 байта, но чтобы не висеть вечность, ставим максимальное количество попыток, причем с небольшой задержкой, так чтобы в самом плохом сценарии, когда данные шлют медленно, все же их получить с большей вероятностью...

    Этот пользователь поблагодарил SoftWareGuy за это полезное сообщение:

    SoftFelix(12.02.2020)

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Вопросы начинающего ATM'щика
    от Максагор в разделе Разный софт
    Ответов: 43
    Последнее: 19.09.2023, 13:52
  2. Вопросы начинающего спектрумопаятеля :)
    от The_Medved в разделе Несортированное железо
    Ответов: 44
    Последнее: 08.10.2011, 22:59
  3. Монитор начинающего Спектрумиста
    от Doktor в разделе Для начинающих
    Ответов: 5
    Последнее: 14.04.2011, 11:02
  4. Ответов: 5
    Последнее: 25.08.2008, 01:13

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •