Вверх ↑
Ответов: 4622
Рейтинг: 746
#1: 2017-01-12 12:53:25 ЛС | профиль | цитата
kaban4ik писал(а):
Уверен что 1 на клавиатуре не есть 00000001 в байтах.
Конечно, не есть. Он представлен кодом клавиши, которому соответствует символ '1' в кодировке, и который имеет код 49.

amateur писал(а):
А в окне симулятора в регистре приемника UDR вижу такую бинарную последовательность - 00110001. В десятичном представлении это цифра - 49
Метод doWrite компонента принимает и пишет данные в виде строки, а строка состоит из байтов, каждый из которых представляет собой код символа в текущей кодировке. Символ '1' представлен байтом со значением 49. Как временное решение - в Button.Data выбери тип String и укажи вот так: \1
Бекслеш и цифра после него в строковых свойствах HiAsm позволяют вводить непечатаемые символы по их кодам. В данном случае туда будет занесен символ с кодом 1 (и посланный байт будет в виде 00000001). С остальными байтами также прокатит (кроме \0, но и там можно выкрутиться).

А более правильный вариант - в COMEX добавить свойство DataType, либо модифицировать Converter, чтобы он умел любые примитивные типы выдавать/принимать как строку (более точно - как тип Delphi string, состоящий из байтов, из которых состоят исходные данные).
карма: 26

0
Редактировалось 1 раз(а), последний 2017-01-12 12:54:03