В мониторе COM порта "проскальзывают" кракозябры
- Войдите на сайт для отправки комментариев
Пнд, 22/10/2018 - 20:07
В мониторе COM порта "проскальзывают" кракозябры. Но дело НЕ в настройке скорости порта и скорости в begin. В коде ВСЕ команды Serial.... закоментированы - проверены "Поиском". Подпрограмм и библиотек нет. Прет что-то аппаратное, потому что кракозябры лезут при нажатии кнопки... та повешена на аналоговый порт... Или что еще может проходить по КОМ порту после прошивки? Мб что-то с типами переменных... я в них не шарю(((... Код большой, не выложишь.
Причин много. Все не перечислишь.
Квадратик и следом открытая фигурная скобка. Такая пара..... Ни на что не похожа? 9600.
Как это ... причин много?:))) Код же не посылает ничего в порт...
А как пользоваться плотером? Он выдает пустой лист((((
выложите минимальный код при котором можно наблюдать явление
Причин много. Все не перечислишь.
на самом деле причин всего 2 :
- либо аппаратная
- либо программная :D
Он Вам это сказал или Вы так предполагаете?
Если
Код большой
и при этом в нём распахана память, он может посылать не только в порт, а и значительно дальше.
Так чтоВам правильно сказали - выложите минимальный код на котором можно наблюдать неприятность.
При нажатии всегда бегут строки с состоянием уровня входа, а при отпускании кнопки код цифры прерываются и единожды вылезают в/ кракозябры... 2 или 3 пары
на самом деле причин всего 2 :
- либо аппаратная
- либо программная :D
У меня чаще "отсутствие мозгов" - это какая? Аппаратная или программная?
При нажатии всегда бегут строки с состоянием уровня входа, а при отпускании кнопки код цифры прерываются и единожды вылезают в/ кракозябры... 2 или 3 пары
Вы не поняли. Приведите законченный код, который мы могли бы запустить и наблюдать проблему. Законченный - с loop, с setup и т.д.
на самом деле причин всего 2 :
- либо аппаратная
- либо программная :D
У меня чаще "отсутствие мозгов" - это какая? Аппаратная или программная?
-сколько программистов нужно что бы поменять лампочку ?
- нисколько , это проблема на стороне железа )
Вы не поняли. То, что вы выложили - какой-то обрывок, он не подходит. Выложите короткую законченную программку, которую можно откомпилировать и запустить - и на которой будет видна проблема.
И что ж вы врете, что "код ничего не шлет в порт"?
А! Жаль... это не реально. Ладно, спасибо все равно! Насколько мне известно, такие задачи решаются базовой логикой, методами исключения и т.п. Так что - сам код -это конечно хорошо бы для простоты, но не всегда это возможно.
Я не вру, потому что есть закоментить вывод, то все равно при отпускании кнопок (ползунка) кракозябры выходят. Просто основного значния напряжения не наблюдается.
А! Жаль... это не реально. Ладно, спасибо все равно! Насколько мне известно, такие задачи решаются базовой логикой, методами исключения и т.п. Так что - сам код -это конечно хорошо бы для простоты, но не всегда это возможно.
метод исключения прост :
вы даете минимальный код при котором видите причину ,кто то его запускает у себя
- если проблема проявляеться,на заведомо рабочем железе ->проблема в программе
- если проблема не проявляется -> проблема в вашем железе,(но так же может быть и в программе)
Насколько мне известно, такие задачи решаются базовой логикой, методами исключения и т.п. Так что - сам код -это конечно хорошо бы для простоты, но не всегда это возможно.
Такие задачи решаются применением базовой логики и метода исключения к коду. Похвально, что вы это понимаете. Код у вас есть - вот и попробуйте все это применить.
А без кода это как обучение игре на гитаре без гитары.
Ок. Спасибо, за советы. Попытаюсь сам, если не получится - постараюсь все выложить....
понимаете,что бы проблему решить ,нужно узнать ее причину.
с ваших слов в первом сообщении,можно "тыкать пальцем в небо"(предлагать варианты решений) очень долго и так и не попасть (не решить).
Кстати в тему -полезная заметка DIHALT'а про глюки , если кто ещё не читал.
to dim3740, если у вас подозрение что ошибка аппаратная, то что вы ждёте от нас? Вы даже в двух словах не удосужились описать своё устройство.
Еще раз спасибо, за многочисленные попытки решить мю проблему. Некоторые это делают весьма искренне - им вдвойне! На вход АЦП подключен резистивный сенсорный датчик, имеющий приличный дребезг. Это тот минимум. Если бы я делал на Атмеге, я бы озадачился опорным напряжением, номером порта, типом АЦП преобразования и т.п. Но тут - ардуино - все должно сделать само. Что еще... ? Спрашивайте. Порт КОМ выдает управляющие напряжения (в коде) на другое устройство, но в момент прошивки я размыкаю линию. И это неважно, ибо проблема наблюдается даже при COM аудите показателя датчика... Приемник также читает все неустойчиво, отсюда и сабж... мб это кракозябры все и портят. А может они вообще и не идут в приемник, а проблема в IDE.
Лезет 127 (7F) 123 (7B) и ровно три пары.
При нажатии всегда бегут строки с состоянием уровня входа, а при отпускании кнопки код цифры прерываются и единожды вылезают в/ кракозябры... 2 или 3 пары
а если в коде выше выводить в порт не содержимое массива softPotVals[]. а любую константу - крокозябры остаются?
ноги 0 и 1 в проекте не заняты?
хотя. давай начнем с прастова, камень какой?
Я не вру, потому что есть закоментить вывод, то все равно при отпускании кнопок (ползунка) кракозябры выходят. Просто основного значния напряжения не наблюдается.
Другими словами, кракозябры появляются даже тогода, когда в принципе отключена всякая передача?
Тогда предположение: при отпускании кнопок в канал связи проникают аппаратные помехи, например, из-за просаживания питания, или из-за достаточно сильной электромагнитной связи (емкостной или индуктивной).
Если просто константу, то тоже кракозябры есть. Идут НЕ во всех случаях нажатия на сенсор (см рис). Иногда есть перевод строки, иногда нет. Также 3 шт идут после ресета/питания.
Нано, с 328. Ноги 0 и 1 при рассматриваемом состоянии отключены от нагрузок через переключатель. После отладки, будут подключены, как я писал выше к внешним устройствам.
Это точно дребезг, причем только при отпускании. Методы известны, но вопрос в том, как понять работу работу "монитора порта " IDE?
Итак, Serial.println() - передает ASCII. Тогда вопрос: какое же значение надо неумышленно передать в порт, чтоб выдать "кракозябру"?? Я передаю значение от 0 до 255. Там есть еще второй параметр, может он нужен?
Да, все коды с Serial (На вывод) - комментированы. КЗ при вкл, ресете, при отпускании сенсора. Да, помеха видимо.. буду смотреть осциллом.... Спасибо. Отпишусь.
Итак, Serial.println() - передает ASCII. Тогда вопрос: какое же значение надо неумышленно передать в порт, чтоб выдать "кракозябру"?? Я передаю значение от 0 до 255. Там есть еще второй параметр, может он нужен?
А Вы выведите в цикле все 256 значений в два столбика: как десятичное число и как симовл - и узнаете.
1. Добавил БП + соединение с компом по ЮСБ - результат аналогично.
2. оставил только БП 5в 4 А и без компа (ком порта) - TX вспыхивает при отсутствии кода вывода.
3. !!! у меня это сенсор только барахлит, и в отличие от других - он на A6, а другие на А0---А3. Это важно?
ПС. Уфф... И он почему-то с внешней подтяжкой и резюком на 750 ом))) Я уже и забыл про это...
dim3740, А6 и А7 не могут работать как цифровые пины, это чисто аналоговые входы, поэтому делать с ними digitalWrite() бесполезно.
Этот код могу и убрать. И убрал. Погуглил... пишут, он просто ни на что не влияет. Читаю же я порт А6 как аналоговый. И датчик у меня - это переменное сопртивление. И резистор внешний стоит. А главное - никак не могу найти связи косяков "вывода СОМ порта" и чтения аналоговых пинов.
Ок. Чуть в сторону вопрос... Пусть А6 и А7 - "сложные" порты:))) .. Есть пин А5, он же I2C. а) этот интерфейс в библе можно переназначить на другой пин? Тогда бы я датчик повесил на А5. б) более неудобно для меня: можно ли программно разнести I2C и ACD, если их не применять одновременно?
Это все делать, если все же причина плохого обмена по СОМ *кракозябры и т.п.) именно в применении А6, что не есть факт...
dim3740, мне кажется, Вы где-то не там роете.
Если у Вас проходят непонятные символы при отсутствии активности COM-порта, значи, у Вас попросту по этим линиям проходят помехи, амплитуда которых больше 2.5 В. Соответственно, надо искать и устранять именно причину этих помех. Это либо просадка питания, либо наводка на длинные провода.
Если отключаю работу таймера Т0, то все нормально. Можете подсказать взаимосвязь?