Страница 1 из 2
Отправка данных в COM-PORT
Добавлено: 25 сен 2018, 12:13
tolibbass
Здравствуйте. Сделал пробную программку. Все работает, но при передаче в COM-PORT нечитаемые символы. Вроде должно писать на английском SVET-ON, SVET-OFF, но по факту "кракозябры")) Подскажите, может где какие настройки поменять??
Отправлено спустя 1 минуту 2 секунды:
На дисплее все нормально - как должно быть так и отображается.
Отправка данных в COM-PORT
Добавлено: 25 сен 2018, 12:46
Labu559
tolibbass писал(а): 25 сен 2018, 12:13по факту "кракозябры")) Подскажите, может где какие настройки поменять??
Вариантов 2. Первый- [spoiler title= проверить соответствие скорости передачи данных]
tolibbass.png
[/spoiler] Второй- "особенности" работы переходника TTL->USB, с помощью которого подключена Ваша ProMini к компютеру.
Отправка данных в COM-PORT
Добавлено: 25 сен 2018, 13:04
tolibbass
Скорости передачи данных 9600, а про особенности поподробней можно??
Отправка данных в COM-PORT
Добавлено: 25 сен 2018, 13:23
kulibinsvv
tolibbass писал(а): 25 сен 2018, 12:13Подскажите, может где какие настройки поменять??
Вход Send блока SendToUART почему в воздухе висит?
Отправка данных в COM-PORT
Добавлено: 25 сен 2018, 13:25
tolibbass
Ну, как бы, там инверсия и передача постоянно
Отправка данных в COM-PORT
Добавлено: 25 сен 2018, 13:27
kulibinsvv
tolibbass писал(а): 25 сен 2018, 13:25Ну, как бы, там инверсия и передача постоянно
Инверсия чего?
Отправка данных в COM-PORT
Добавлено: 25 сен 2018, 13:28
tolibbass
Трындец!!!! Сейчас поменял скорость порта в мониторе на 19200 и все нормально. Как это объяснить?? В блоке SendToUART скорость 9600 выставлена
Отправка данных в COM-PORT
Добавлено: 25 сен 2018, 13:29
Labu559
tolibbass писал(а): 25 сен 2018, 13:04поподробней можно
Подробности в отсутствии сертификации продукции поставляемой из Китая в страны отличные от ЕС. Отличия тактовых частот устройств от указанных, негарантированная работа на определённых скоростях, несоответствие настроек програмных системных таймеров. В Ардуино совместимых платах с МК не от Atmel - такое безобразие наблюдается. К примеру с MassDuino MD328D мне пришлось очень долго настраивать вывод в ком порт, пока не установил скорось (единственная из стандартных) на которой происходила корректная прием-передача. Пробуйте и Вы менять скорости, ведь 3.3В и 8 МГц для ATMega 328 не совсем штатные.
N.B.Да, Вы уже сами к этому пришли- немного не успел я с ответом.
Отправка данных в COM-PORT
Добавлено: 25 сен 2018, 13:31
tolibbass
kulibinsvv писал(а): 25 сен 2018, 13:27tolibbass писал(а): 25 сен 2018, 13:25Ну, как бы, там инверсия и передача постоянно
Инверсия чего?
Инверсия сигнала. Т.е. там 0, инвертируется и получается всегда 1
Отправлено спустя 1 минуту 25 секунд:
Labu559 писал(а): 25 сен 2018, 13:29tolibbass писал(а): 25 сен 2018, 13:04поподробней можно
Подробности в отсутствии сертификации продукции поставляемой из Китая в страны отличные от ЕС. Отличия тактовых частот устройств от указанных, негарантированная работа на определённых скоростях, несоответствие настроек програмных системных таймеров. В Ардуино совместимых платах с МК не от Atmel - такое безобразие наблюдается. К примеру с MassDuino MD328D мне пришлось очень долго настраивать вывод в ком порт, пока не установил скорось (единственная из стандартных) на которой происходила корректная прием-передача. Пробуйте и Вы менять скорости, ведь 3.3В и 8 МГц для ATMega 328 не совсем штатные.
Да да, так и вышло. А можно еще вопрос?? Вот PRO Mini на 3.3 В и 8 МГц. А на плате кварц на 16 МГц. Как так??
Отправка данных в COM-PORT
Добавлено: 25 сен 2018, 13:41
Labu559
tolibbass писал(а): 25 сен 2018, 13:31Как так??
Поднимайте питание к 5В (ещё неизвестно какой там стабилизатор установлен) или меняйте кварц на 8MHz. Может у Вас вообще плата 5-вольтовая и ей не хватает питания? Это Вам первый звоночек что микроконтроллер "работает" в нештатном режиме (не тянет 16-MHz), ждите глюков в более сложных микропрограммах. Удачи!
Отправка данных в COM-PORT
Добавлено: 25 сен 2018, 13:46
tolibbass
Подал на RAW 12В, на VCC - 3.3В. На ноге самого камня тоже 3.3В. В общем китайцы как всегда))
Отправка данных в COM-PORT
Добавлено: 25 сен 2018, 13:50
kulibinsvv
tolibbass писал(а): 25 сен 2018, 13:31Т.е. там 0, инвертируется и получается всегда 1
Нет там никакого нуля. Вход висит в воздухе. Чтобы появился ноль нужно его туда подать. Почему-то у блока DISP вы на вход EN константу повесили, а тут всё само из ниоткуда появляется.
tolibbass писал(а): 25 сен 2018, 13:31Вот PRO Mini на 3.3 В и 8 МГц. А на плате кварц на 16 МГц. Как так??
На PRO Mini могут быть установлены разные комбинации контроллеров, кварцев и стабилизаторов. Так что придётся вам поискать даташиты на детальки и определить, что у вас за плата на самом деле. Продавцы на названии не заморачиваются.
Labu559 писал(а): 25 сен 2018, 13:293.3В и 8 МГц для ATMega 328 не совсем штатные
Абсолютно штатные параметры!
Откройте даташит на микроконтроллер и удостоверьтесь. Только сначала буковки после 328 уточните, а то может даташит не от того контроллера оказаться.
Отправка данных в COM-PORT
Добавлено: 25 сен 2018, 16:39
olddolin
tolibbass писал(а): 25 сен 2018, 13:28Трындец!!!! Сейчас поменял скорость порта в мониторе на 19200 и все нормально. Как это объяснить?? В блоке SendToUART скорость 9600 выставлена
Было что-то подобное и тоже 19200 и больше помогло. Не заморачиваюсь над этим, главное чтобы работало.
Отправка данных в COM-PORT
Добавлено: 25 сен 2018, 20:11
Phazz
kulibinsvv писал(а): 25 сен 2018, 13:50Нет там никакого нуля. Вход висит в воздухе. Чтобы появился ноль нужно его туда подать. Почему-то у блока DISP вы на вход EN константу повесили, а тут всё само из ниоткуда появляется.
Вы ошибаетесь. Вот код ТТ-триггера с инвертированным входом и обычным
Отправка данных в COM-PORT
Добавлено: 25 сен 2018, 20:23
Ingwar
kulibinsvv писал(а): 25 сен 2018, 13:50а тут всё само из ниоткуда появляется.
Я не призываю так пользоваться, но если сравнить часть кода например генератора с "висящим" входом
[spoiler]//Плата: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);[/spoiler]
и "висящим" с инверсией
[spoiler]//Плата: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);[/spoiler]
то будет видна разница.
Отправка данных в COM-PORT
Добавлено: 26 сен 2018, 06:00
kulibinsvv
[ref=#404040]Phazz[/ref], [ref]Ingwar[/ref], Вы в чём меня пытаетесь убедить? Что у прямого и инверсного входа код разный?

Дак, я нигде и не говорил, что он одинаковый.
Я говорю совсем о другом. Откуда берётся значение на входе Send блока SendToUART из скриншота в первом посте? В исходном состоянии там TRUE или FALSE? Однозначность где?
Раньше FLProg такие плюхи не пропускал.
Отправка данных в COM-PORT
Добавлено: 26 сен 2018, 06:06
Phazz
Ну вообще-то это всегда можно было делать ))))
Отправлено спустя 2 минуты 58 секунд:
[ref]kulibinsvv[/ref], у boolean только 2 состояния, поэтому если к входу ничего не подключено, то состояние будет, false. Ну и соответственно инвертированный вход будет не false то есть true.
Отправка данных в COM-PORT
Добавлено: 26 сен 2018, 07:39
kulibinsvv
Phazz писал(а): 26 сен 2018, 06:06то состояние будет, false
Из какого источника это известно? Ткните пальцем. Не на эксперименты, а на документ.
Отправка данных в COM-PORT
Добавлено: 26 сен 2018, 07:53
Phazz
[ref]kulibinsvv[/ref], Это видно из кода! То есть получается, если этого нигде не описано в явном виде, то этого не существует? Народ пользуется этим как-то без документов. Ну не успевает автор описать все фичи своей программы документально, простите его за это пожалуйста.
Отправлено спустя 4 минуты 6 секунд:
Первый урок по Flprog, надеюсь это как документ подойдет?
https://youtu.be/Kep_NTuzd2k?t=350
Отправка данных в COM-PORT
Добавлено: 26 сен 2018, 08:30
kulibinsvv
Phazz писал(а): 26 сен 2018, 07:49Это видно из кода!
А вообще, это больше из области культуры речи (написания программы).
Человек не знакомый с FLProg, но знающий FBD будет трактовать подобную запись как ошибочную.
Программы, эксплуатирующие подобные недосмотры программиста-разработчика среды программирования, заранее обречены на ошибки (у программистов называются уязвимости).
Завтра разработчик поменяет параметры оптимизации кода или обработки исключительных ситуаций, и ваша программа перестанет компилироваться.
Или сбои самого контроллера при выполнении такого кода, которые трудно устранимы. Вы ведь не возьмётесь утверждать, что это не так?
Кстати, из-за этих недосмотров очень много вопросов у начинающих. Потому что, как правило, нарушена нормальная логика, привычная большинству.
Дискутировать можно долго, а писать нужно грамотно.
