Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: demanik 
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Конвертация в ASCII (Подскажите...)
Конвертация в ASCII
DimDIk Дата: Ср, 22.04.2009, 20:44  |                                                                                                                Сообщение # 1
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 28.12.2008

Статус: Offline

Осуществляется прием данных,где каждое число соответствует байту,всего 6 байт. Необходимо конвертировать эти байты в переменную типа float, затем из переменной типа float получить пакет в виде ASCII символов. Подскажите как это сделать, или при помощи каких команд можно осуществить такую конвертацию?
ЯНДЕКС Дата: 22.04.2009
demanik Дата: Ср, 22.04.2009, 20:50  |                                                                                                                Сообщение # 2
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

посмотрите оператор STR$

Попробуй всё и вся... может быть пол...

DimDIk Дата: Ср, 06.05.2009, 21:22  |                                                                                                                Сообщение # 3
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 28.12.2008

Статус: Offline

Спасибо!!!

Добавлено (30.04.2009, 2:48:58)
---------------------------------------------
Еще такой вопрос, как данные в формата ASCII перевести в формат float ?

Добавлено (06.05.2009, 9:22:53)
---------------------------------------------
Подскажите есть ли в протоне команда,разделяющая байт на два полубайта?

DimDIk Дата: Чт, 14.05.2009, 17:53  |                                                                                                                Сообщение # 4
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 28.12.2008

Статус: Offline

Может знает кто-нибудь,как 1 байт представить в виде двух hex?
demanik Дата: Чт, 14.05.2009, 19:15  |                                                                                                                Сообщение # 5
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (DimDIk)
Может знает кто-нибудь,как 1 байт представить в виде двух hex?

Например для вывода дисплей пишем: PRINT HEX2 переменная


Попробуй всё и вся... может быть пол...

DimDIk Дата: Чт, 14.05.2009, 21:51  |                                                                                                                Сообщение # 6
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 28.12.2008

Статус: Offline

Да,я это знаю,но можно ли похожим способом присвоить hex2 какой нибудь переменной?Сколько я ни пробовал у меня ничего не выходит. cry
demanik Дата: Чт, 14.05.2009, 22:19  |                                                                                                                Сообщение # 7
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (DimDIk)
Сколько я ни пробовал у меня ничего не выходит

Вы поконкретнее опишите задачу, что конкретно нужно делать.


Попробуй всё и вся... может быть пол...

DimDIk Дата: Чт, 14.05.2009, 22:58  |                                                                                                                Сообщение # 8
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 28.12.2008

Статус: Offline

Мне необходимо тпреобразование "чистой" двоичной информации в допустимые для передачи по каналу ASCII-символы, Тетрады кодируются следующим образом:
0000 -> 'G' = 0x47
0001 -> 'H' = 0x48
0010 -> 'I' = 0x49
0011 -> 'J' = 0x4a
0100 -> 'K' = 0x4b
0101 -> 'L' = 0x4c
0110 -> 'M' = 0x4d
0111 -> 'N' = 0x4e
1000 -> 'O' = 0x4f
1001 -> 'P' = 0x50
1010 -> 'Q' = 0x51
1011 -> 'R' = 0x52
1100 -> 'S' = 0x53
1101 -> 'T' = 0x54
1110 -> 'U' = 0x55
1111 -> 'V' = 0x56
Т.е. приняв некое значение переменной типа float(например FLT=-3.14), я должен перекодировать ее согласно изложенному выше принципу,и передать получателю.

Сообщение отредактировал DimDIk - Чт, 14.05.2009, 23:29
demanik Дата: Чт, 14.05.2009, 23:38  |                                                                                                                Сообщение # 9
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (DimDIk)
Мне необходимо каждую тетраду ASCII символа представить вот в таком виде

Можно пробовать через таблицу LOOKUP.
Также посмотрите оператор VAL, он служит для конвертации данных.


Попробуй всё и вся... может быть пол...

DimDIk Дата: Чт, 14.05.2009, 23:39  |                                                                                                                Сообщение # 10
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 28.12.2008

Статус: Offline

Спасибо,буду пробовать.
demanik Дата: Чт, 14.05.2009, 23:42  |                                                                                                                Сообщение # 11
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (DimDIk)
Т.е. приняв некое значение переменной типа float(например FLT=-3.14), я должен перекодировать ее согласно изложенному выше принципу,и передать получателю.

Тоесть вам надо передать: "F","L","T","=","-","3",".","1","4" в ASCII виде. Я правильно понял ?


Попробуй всё и вся... может быть пол...

DimDIk Дата: Чт, 14.05.2009, 23:44  |                                                                                                                Сообщение # 12
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 28.12.2008

Статус: Offline

Нет, только значение переменной.
demanik Дата: Пт, 15.05.2009, 00:11  |                                                                                                                Сообщение # 13
Группа: Модераторы
Ранг:  Помогаю всем
Сообщений: 451
Репутация: 10   ±
Замечания:   ±
На сайте с 11.12.2007

Статус: Offline

Quote (DimDIk)
Нет, только значение переменной

помозгую

Добавлено (15.05.2009, 0:11:06)
---------------------------------------------

Quote (demanik)
Нет, только значение переменной

DIM Pi AS FLOAT
Pi = -3.14
SEROUT PORTB.6, 396, [DEC Pi]

на компе принимаю -3,14

Как я понял DEC сам преобразует каждую цифру в код и последовательно их передает.


Попробуй всё и вся... может быть пол...


Сообщение отредактировал demanik - Пт, 15.05.2009, 00:19
DimDIk Дата: Пт, 15.05.2009, 00:29  |                                                                                                                Сообщение # 14
Группа: Пользователи
Ранг:  Начал соображать
Сообщений: 20
Репутация: 0   ±
Замечания:   ±
На сайте с 28.12.2008

Статус: Offline

По моему это немного не то,ведь формат float в протоне имеет размер 4-ре байта, мне необходимо каждую тетраду перекодировать вот так:
0000 -> 'G' = 0x47
0001 -> 'H' = 0x48
0010 -> 'I' = 0x49
0011 -> 'J' = 0x4a
0100 -> 'K' = 0x4b
0101 -> 'L' = 0x4c
0110 -> 'M' = 0x4d
0111 -> 'N' = 0x4e
1000 -> 'O' = 0x4f
1001 -> 'P' = 0x50
1010 -> 'Q' = 0x51
1011 -> 'R' = 0x52
1100 -> 'S' = 0x53
1101 -> 'T' = 0x54
1110 -> 'U' = 0x55
1111 -> 'V' = 0x56
В итоге на выходе должно получиться 8 байт в виде "G","O","S","O","V","L","S","J" которые я уже буду передавать.
Форум Picbasic.ru » Программирование МК » Proton PicBasic » Конвертация в ASCII (Подскажите...)
Страница 1 из 11
Поиск: