Страница 1 из 2

Отправка данных в COM-PORT

Добавлено: 25.09.2018{, 12:12}
tolibbass
Здравствуйте. Сделал пробную программку. Все работает, но при передаче в COM-PORT нечитаемые символы. Вроде должно писать на английском SVET-ON, SVET-OFF, но по факту "кракозябры")) Подскажите, может где какие настройки поменять??

Отправлено спустя 1 минуту 2 секунды:
На дисплее все нормально - как должно быть так и отображается.

Отправка данных в COM-PORT

Добавлено: 25.09.2018{, 12:46}
Labu559
tolibbass писал(а):
25.09.2018{, 12:13}
по факту "кракозябры")) Подскажите, может где какие настройки поменять??
Вариантов 2. Первый-
проверить соответствие скорости передачи данныхПоказать
tolibbass.png
Второй- "особенности" работы переходника TTL->USB, с помощью которого подключена Ваша ProMini к компютеру.

Отправка данных в COM-PORT

Добавлено: 25.09.2018{, 13:04}
tolibbass
Скорости передачи данных 9600, а про особенности поподробней можно??

Отправка данных в COM-PORT

Добавлено: 25.09.2018{, 13:23}
kulibinsvv
tolibbass писал(а):
25.09.2018{, 12:13}
Подскажите, может где какие настройки поменять??
Вход Send блока SendToUART почему в воздухе висит?

Отправка данных в COM-PORT

Добавлено: 25.09.2018{, 13:25}
tolibbass
Ну, как бы, там инверсия и передача постоянно

Отправка данных в COM-PORT

Добавлено: 25.09.2018{, 13:27}
kulibinsvv
tolibbass писал(а):
25.09.2018{, 13:25}
Ну, как бы, там инверсия и передача постоянно
Инверсия чего?

Отправка данных в COM-PORT

Добавлено: 25.09.2018{, 13:28}
tolibbass
Трындец!!!! Сейчас поменял скорость порта в мониторе на 19200 и все нормально. Как это объяснить?? В блоке SendToUART скорость 9600 выставлена

Отправка данных в COM-PORT

Добавлено: 25.09.2018{, 13:29}
Labu559
tolibbass писал(а):
25.09.2018{, 13:04}
поподробней можно
Подробности в отсутствии сертификации продукции поставляемой из Китая в страны отличные от ЕС. Отличия тактовых частот устройств от указанных, негарантированная работа на определённых скоростях, несоответствие настроек програмных системных таймеров. В Ардуино совместимых платах с МК не от Atmel - такое безобразие наблюдается. К примеру с MassDuino MD328D мне пришлось очень долго настраивать вывод в ком порт, пока не установил скорось (единственная из стандартных) на которой происходила корректная прием-передача. Пробуйте и Вы менять скорости, ведь 3.3В и 8 МГц для ATMega 328 не совсем штатные.

N.B.Да, Вы уже сами к этому пришли- немного не успел я с ответом.

Отправка данных в COM-PORT

Добавлено: 25.09.2018{, 13:30}
tolibbass
kulibinsvv писал(а):
25.09.2018{, 13:27}
tolibbass писал(а):
25.09.2018{, 13:25}
Ну, как бы, там инверсия и передача постоянно
Инверсия чего?
Инверсия сигнала. Т.е. там 0, инвертируется и получается всегда 1

Отправлено спустя 1 минуту 25 секунд:
Labu559 писал(а):
25.09.2018{, 13:29}
tolibbass писал(а):
25.09.2018{, 13:04}
поподробней можно
Подробности в отсутствии сертификации продукции поставляемой из Китая в страны отличные от ЕС. Отличия тактовых частот устройств от указанных, негарантированная работа на определённых скоростях, несоответствие настроек програмных системных таймеров. В Ардуино совместимых платах с МК не от Atmel - такое безобразие наблюдается. К примеру с MassDuino MD328D мне пришлось очень долго настраивать вывод в ком порт, пока не установил скорось (единственная из стандартных) на которой происходила корректная прием-передача. Пробуйте и Вы менять скорости, ведь 3.3В и 8 МГц для ATMega 328 не совсем штатные.
Да да, так и вышло. А можно еще вопрос?? Вот PRO Mini на 3.3 В и 8 МГц. А на плате кварц на 16 МГц. Как так??

Отправка данных в COM-PORT

Добавлено: 25.09.2018{, 13:41}
Labu559
tolibbass писал(а):
25.09.2018{, 13:31}
Как так??
Поднимайте питание к 5В (ещё неизвестно какой там стабилизатор установлен) или меняйте кварц на 8MHz. Может у Вас вообще плата 5-вольтовая и ей не хватает питания? Это Вам первый звоночек что микроконтроллер "работает" в нештатном режиме (не тянет 16-MHz), ждите глюков в более сложных микропрограммах. Удачи!

Отправка данных в COM-PORT

Добавлено: 25.09.2018{, 13:46}
tolibbass
Подал на RAW 12В, на VCC - 3.3В. На ноге самого камня тоже 3.3В. В общем китайцы как всегда))

Отправка данных в COM-PORT

Добавлено: 25.09.2018{, 13:50}
kulibinsvv
tolibbass писал(а):
25.09.2018{, 13:31}
Т.е. там 0, инвертируется и получается всегда 1
Нет там никакого нуля. Вход висит в воздухе. Чтобы появился ноль нужно его туда подать. Почему-то у блока DISP вы на вход EN константу повесили, а тут всё само из ниоткуда появляется.
tolibbass писал(а):
25.09.2018{, 13:31}
Вот PRO Mini на 3.3 В и 8 МГц. А на плате кварц на 16 МГц. Как так??
На PRO Mini могут быть установлены разные комбинации контроллеров, кварцев и стабилизаторов. Так что придётся вам поискать даташиты на детальки и определить, что у вас за плата на самом деле. Продавцы на названии не заморачиваются.
Labu559 писал(а):
25.09.2018{, 13:29}
3.3В и 8 МГц для ATMega 328 не совсем штатные
Абсолютно штатные параметры! :yes:
Откройте даташит на микроконтроллер и удостоверьтесь. Только сначала буковки после 328 уточните, а то может даташит не от того контроллера оказаться.

Отправка данных в COM-PORT

Добавлено: 25.09.2018{, 16:39}
olddolin
tolibbass писал(а):
25.09.2018{, 13:28}
Трындец!!!! Сейчас поменял скорость порта в мониторе на 19200 и все нормально. Как это объяснить?? В блоке SendToUART скорость 9600 выставлена
Было что-то подобное и тоже 19200 и больше помогло. Не заморачиваюсь над этим, главное чтобы работало.

Отправка данных в COM-PORT

Добавлено: 25.09.2018{, 20:11}
Phazz
kulibinsvv писал(а):
25.09.2018{, 13:50}
Нет там никакого нуля. Вход висит в воздухе. Чтобы появился ноль нужно его туда подать. Почему-то у блока DISP вы на вход EN константу повесили, а тут всё само из ниоткуда появляется.
Вы ошибаетесь. Вот код ТТ-триггера с инвертированным входом и обычным

Отправка данных в COM-PORT

Добавлено: 25.09.2018{, 20:23}
Ingwar
kulibinsvv писал(а):
25.09.2018{, 13:50}
а тут всё само из ниоткуда появляется.
Я не призываю так пользоваться, но если сравнить часть кода например генератора с "висящим" входом
СпойлерПоказать
//Плата:1
if (0) { if (! _gen1I) { _gen1I = 1; _gen1O = 1; _gen1P = millis(); } } else { _gen1I = 0 ; _gen1O= 0;}
if (_gen1I) { if ( _isTimer ( _gen1P , 1000 )) { _gen1P = millis(); _gen1O = ! _gen1O;}}
digitalWrite(0, _gen1O);
и "висящим" с инверсией
СпойлерПоказать
//Плата:1
if (!(0)) { if (! _gen1I) { _gen1I = 1; _gen1O = 1; _gen1P = millis(); } } else { _gen1I = 0 ; _gen1O= 0;}
if (_gen1I) { if ( _isTimer ( _gen1P , 1000 )) { _gen1P = millis(); _gen1O = ! _gen1O;}}
digitalWrite(0, _gen1O);
то будет видна разница.

Отправка данных в COM-PORT

Добавлено: 26.09.2018{, 06:00}
kulibinsvv
Phazz, Ingwar, Вы в чём меня пытаетесь убедить? Что у прямого и инверсного входа код разный? :helpme: Дак, я нигде и не говорил, что он одинаковый.
Я говорю совсем о другом. Откуда берётся значение на входе Send блока SendToUART из скриншота в первом посте? В исходном состоянии там TRUE или FALSE? Однозначность где? :smile14:
Раньше FLProg такие плюхи не пропускал.

Отправка данных в COM-PORT

Добавлено: 26.09.2018{, 06:03}
Phazz
Ну вообще-то это всегда можно было делать ))))

Отправлено спустя 2 минуты 58 секунд:
kulibinsvv, у boolean только 2 состояния, поэтому если к входу ничего не подключено, то состояние будет, false. Ну и соответственно инвертированный вход будет не false то есть true.

Отправка данных в COM-PORT

Добавлено: 26.09.2018{, 07:39}
kulibinsvv
Phazz писал(а):
26.09.2018{, 06:06}
то состояние будет, false
Из какого источника это известно? Ткните пальцем. Не на эксперименты, а на документ.

Отправка данных в COM-PORT

Добавлено: 26.09.2018{, 07:49}
Phazz
kulibinsvv, Это видно из кода! То есть получается, если этого нигде не описано в явном виде, то этого не существует? Народ пользуется этим как-то без документов. Ну не успевает автор описать все фичи своей программы документально, простите его за это пожалуйста.

Отправлено спустя 4 минуты 6 секунд:
Первый урок по Flprog, надеюсь это как документ подойдет?

Отправка данных в COM-PORT

Добавлено: 26.09.2018{, 08:30}
kulibinsvv
Phazz писал(а):
26.09.2018{, 07:49}
Это видно из кода!
А вообще, это больше из области культуры речи (написания программы).
Человек не знакомый с FLProg, но знающий FBD будет трактовать подобную запись как ошибочную.

Программы, эксплуатирующие подобные недосмотры программиста-разработчика среды программирования, заранее обречены на ошибки (у программистов называются уязвимости).
Завтра разработчик поменяет параметры оптимизации кода или обработки исключительных ситуаций, и ваша программа перестанет компилироваться.
Или сбои самого контроллера при выполнении такого кода, которые трудно устранимы. Вы ведь не возьмётесь утверждать, что это не так?
Кстати, из-за этих недосмотров очень много вопросов у начинающих. Потому что, как правило, нарушена нормальная логика, привычная большинству.

Дискутировать можно долго, а писать нужно грамотно. :D