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

Блок вывода переменной в UART

Добавлено: 06 фев 2018, 09:37
Lisica
Ребята, может кто соединить блок вывода с выводом byte?
Контроль1.flp

Блок вывода переменной в UART

Добавлено: 06 фев 2018, 09:45
pan
по ходу баг

Блок вывода переменной в UART

Добавлено: 06 фев 2018, 11:26
rw6cm
Lisica писал(а): 06 фев 2018, 09:37Ребята, может кто соединить блок вывода с выводом byte?
через переменную integer не пойдет?

Отправлено спустя 1 час 25 минут 13 секунд:
pan писал(а): 06 фев 2018, 09:45по ходу баг
Думаю это не баг, при передаче в ком, в виде переменной не получится передать байт или чар в чистом виде,
т.к. к пакету данных привязывается дополнение самой переменной, которая транспортирует эти данные.
кто будет на той стороне это раскладывать?

Блок вывода переменной в UART

Добавлено: 06 фев 2018, 11:41
Sancho
rw6cm писал(а): 06 фев 2018, 11:26в виде переменной не получится передать байт или чар в чистом виде,
т.к. к пакету данных привязывается дополнение самой переменной, которая транспортирует эти данные.
кто будет на той стороне это раскладывать?
Баг, я думаю. Т.к. блок приёма готов к данным типа byte, есть такой пункт в его меню.
Вопрос при приёме - всего лишь в интерпретации принятых данных, шлём всё равно байты...

Блок вывода переменной в UART

Добавлено: 06 фев 2018, 15:18
rw6cm
Sancho писал(а): 06 фев 2018, 11:41Баг, я думаю. Т.к. блок приёма готов к данным типа byte, есть такой пункт в его меню.
Да, согласен, что то не о том подумал, это же транспорт в среде FLProg.
И походу этот баг давно. Опустился до вер. 1.1 тоже не берется,
константу байтовую на вход поставить можно, значит должно быть.
надо в баг написать. извиняюсь уже есть.

Блок вывода переменной в UART

Добавлено: 06 фев 2018, 17:12
CraCk

Блок вывода переменной в UART

Добавлено: 06 фев 2018, 18:07
Lisica
[ref]CraCk[/ref], Во, а поиском не нашлось...
rw6cm писал(а): 06 фев 2018, 11:26integer не пойдет?
Оно то пойдёт, пойдёт и стрингом... просто на приёмнике опять конвертировать для обработки...

Блок вывода переменной в UART

Добавлено: 06 фев 2018, 22:38
bayeck
у меня и стринг не передаёт, и до кучи порты вывешивает,

Блок вывода переменной в UART

Добавлено: 13 июн 2018, 12:39
Serg_Grn
Вопрос не совсем по теме, но чтоб не плодить лишних, решил тут)
Хочу передавать число Int в UART, но чтобы передавалось в формате BYTE, а не ASCII.
Через блок "приведение типа к Byte" работает, но не хватает 1 байта, т.к. нужно передавать бОльшие числа, чем 255.
Вот не могу пока осилить такую вроде простую задачу...

Блок вывода переменной в UART

Добавлено: 13 июн 2018, 12:47
Sancho
Serg_Grn писал(а): 13 июн 2018, 12:39Вопрос не совсем по теме, но чтоб не плодить лишних, решил тут)
Хочу передавать число Int в UART, но чтобы передавалось в формате BYTE, а не ASCII.
Через блок "приведение типа к Byte" работает, но не хватает 1 байта, т.к. нужно передавать бОльшие числа, чем 255.
Вот не могу пока осилить такую вроде простую задачу...
Отправь два байта по очереди.
Проверяй, какой байт идёт первым - "порядок компиляции блоков".

Блок вывода переменной в UART

Добавлено: 13 июн 2018, 14:25
Serg_Grn
[ref=#ff8000]Sancho[/ref], к сожалению, не выходит. Открываю монитор COM-порта и в разделе DEC я должен увидеть передаваемое число, но вместо этого я вижу два числа - как два байта раздельно... Сам не очень понимаю, что там происходит.
Вот в данный момент передаваемое число было около 290, а вот что в разделе DEC:
[spoiler]
монитор порта.jpg
[/spoiler]

P.S. Если передавать через блок Byte, то все работает правильно - в разделе DEC передаваемое число (до 255, дальше по кругу).

Блок вывода переменной в UART

Добавлено: 13 июн 2018, 14:44
Sancho
[ref]Serg_Grn[/ref], Передача через UART осуществляется по-байтно, и только байтами.
Serg_Grn писал(а): 13 июн 2018, 14:25и в разделе DEC я должен увидеть передаваемое число
Там не увидишь! Не передаёт он число целиком!
Что-бы потом получить число, большей размерностью, чем байт, нужно провести необходимые действия - обратные проделанным при передаче.
У тебя, я вижу, передаётся, 35, 1, 34, 1... , а два байт CR (13) и LF (10) - это конец строки и перевод каретки.
Вот, пришлось переделать слегка.

Блок вывода переменной в UART

Добавлено: 13 июн 2018, 15:11
Serg_Grn
Sancho писал(а): 13 июн 2018, 14:44Что-бы потом получить число, большей размерностью, чем байт, нужно провести необходимые действия - обратные проделанным при передаче.
Понял, спасибо! Открыли глаза, я почему-то был уверен что через UART можно передавать сразу двухбайтные числа.

Блок вывода переменной в UART

Добавлено: 13 июн 2018, 15:20
Sancho
Вот ещё, посчитай, - идёт 1 и 34, это два байта, старший и младший. Старший - это сколько раз по 256 , следовательно передаётся 1*256 + 34 =290.
Или в программе взять интегер, со значением 0, прогнать по ИЛИ со старшим байтом, сдвинуть влево на 8 разрядов, прогнать по ИЛИ со вторым байтом. всё.

int out = 0;
out |= ( High << 8 ) |(Low) ;
return out;