Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

Закрытая тема
Опции темы
Непрочитано 21.03.2009, 18:43   #1
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию Код Грея, алгоритм ассемблер?

Кто то разбирался с кодом Грея?

Требуется переводить из Грея в b'xxxxxxxxxx' или в 0xXXX, (10 битный код). Это выход датчика.
Работает ли потетрадный перевод из Грея в бинарный(шестнадцатиричный)?

Перекодируем по таблице отдельно каждую тетраду и получаем результат в шестнадцатиричном? Или подскажите алгоритм. Нужен для АСМ, для Си видел алгоритм. Если что, буду его перелопачивать под АСМ.

то есть:
;Gray 010 = 0x010; hex
;Gray 01C = 0x018; hex
;Gray 109 = 0x10F; hex
;Gray 349 = 0x24F; hex
;Gray 5ED = 0x6B9; hex
;Gray СED = 0x8B9; hex
и так далее...

Шестнадцатеричное десятичное код Грея
00 0000 0 00 0000
01 0001 1 01 0001
02 0010 2 03 0011
03 0011 3 02 0010
04 0100 4 06 0110
05 0101 5 07 0111
06 0110 6 05 0101
07 0111 7 04 0100
08 1000 8 0C 1100
09 1001 9 0D 1101
0A 1010 10 0F 1111
0B 1011 11 0E 1110
0C 1100 12 0A 1010
0D 1101 13 0B 1011
0E 1110 14 08 1000
0F 1111 15 09 1001
Реклама:
picavr вне форума  
Непрочитано 21.03.2009, 18:53   #2
MisterDi
Почётный гражданин KAZUS.RU
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,294
Сказал спасибо: 442
Сказали Спасибо 1,048 раз(а) в 706 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию

Когда-то читал, что особенность кода Грея - изменение только одного разряда при последовательном счете, такое кодирование снижает помехи при переключении каскадов. поэтому весь перевод - обычная таблица. Надеюсь, что это для оптического датчика?
MisterDi вне форума  
Непрочитано 21.03.2009, 19:47   #3
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от MisterDi
Когда-то читал, что особенность кода Грея - изменение только одного разряда при последовательном счете, такое кодирование снижает помехи при переключении каскадов. поэтому весь перевод - обычная таблица. Надеюсь, что это для оптического датчика?
Да, это уже всё прочитал,

Датчик промышленый ЕНКОДЕР, выдаёт кодом Грея, ну вот такой купили без моего ведома. И теперь требуется подключить его к управляющему автомату, счиывать показания, которые пропорциональны перемещению.
Таблицей это понятно, но сьест килобайт FLASH. Может есть простой алгоритм. Потому и спрашиваю. Если короткого алгоритма нет, то придётся выделять FLASH.
picavr вне форума  
Непрочитано 21.03.2009, 21:28   #4
finiki
Частый гость
 
Регистрация: 10.03.2007
Сообщений: 30
Сказал спасибо: 8
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
finiki на пути к лучшему
По умолчанию

В свое время использовал код Грея для хранения данных 2-х байтового счетчика в EEPROM. Это удобно, т.к. при каждом увеличении счетчика на 1 изменения всегда происходят только в одном байте. Подробностей не помню, но исходники остались.

Прикрепленный файл: 4462808.rar
finiki вне форума  
Непрочитано 21.03.2009, 22:18   #5
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Сообщение от finiki
В свое время использовал код Грея для хранения данных 2-х байтового счетчика в EEPROM. Это удобно, т.к. при каждом увеличении счетчика на 1 изменения всегда происходят только в одном байте. Подробностей не помню, но исходники остались.
Спасибо. Напишу и проверю вместе с реальным счётчиком когда он ко мне попадёт.

Прикрепленный файл: 4462808.rar
picavr вне форума  
Непрочитано 21.03.2009, 22:41   #6
sanitar249
Почётный гражданин KAZUS.RU
 
Аватар для sanitar249
 
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
sanitar249 на пути к лучшему
По умолчанию

Ваш случай! http://emp.byui.edu/FisherR/Downloads/
encdr.asm
http://surf.de.uu.net/encore/FAQ/www/Q21.htm
Удачи!
__________________
Я, думаю, нужно подумать...
sanitar249 вне форума  
Непрочитано 22.03.2009, 18:36   #7
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

спасибо, просил АСМ
Сообщение от sanitar249
Ваш случай! http://emp.byui.edu/FisherR/Downloads/ encdr.asm
не грузится.
picavr вне форума  
Непрочитано 22.03.2009, 18:55   #8
sanitar249
Почётный гражданин KAZUS.RU
 
Аватар для sanitar249
 
Регистрация: 19.01.2007
Сообщений: 1,747
Сказал спасибо: 2
Сказали Спасибо 46 раз(а) в 35 сообщении(ях)
sanitar249 на пути к лучшему
По умолчанию

http://emp.byui.edu/FisherR/Downloads/encdr.asm
Пардон, пробел попал в ссылку, попробуйте....
Удачи!
__________________
Я, думаю, нужно подумать...
sanitar249 вне форума  
Непрочитано 27.03.2009, 04:39   #9
picavr
Почётный гражданин KAZUS.RU
 
Аватар для picavr
 
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
picavr на пути к лучшему
По умолчанию

Я написал своё. Если кому пригодится. (16 bit) Но можно легко любого размера.
Код:
;ПРЕОБРАЗОВАНИЕ В КОД ГРЕЯ
BINTOGRAY	MOVF	BINARYL,W
	MOVWF	GRAYCODEL
	MOVF	BINARYH,W
	MOVWF	GRAYCODEH
	BCF	STATUS,C
	RRF	GRAYCODEH
	RRF	GRAYCODEL
	MOVF	BINARYL,W
	XORWF	GRAYCODEL
	MOVF	BINARYH,W
	XORWF	GRAYCODEH
	RETURN
;Преобразование кода Грея в двоичный код
GRAYTOBIN	MOVF	GRAYCODEH,W
	MOVWF	BINARYH
	MOVF	GRAYCODEL,W
	MOVWF	BINARYL
	BCF	BINARYH,7
	BTFSC	GRAYCODEH,7
	BSF	BINARYH,7
	MOVLW	40
	BTFSC	BINARYH,7
	XORWF	BINARYH
	MOVLW	20
	BTFSC	BINARYH,6
	XORWF	BINARYH
	MOVLW	10
	BTFSC	BINARYH,5
	XORWF	BINARYH
	MOVLW	8
	BTFSC	BINARYH,4
	XORWF	BINARYH
	MOVLW	4
	BTFSC	BINARYH,3
	XORWF	BINARYH
	MOVLW	2
	BTFSC	BINARYH,2
	XORWF	BINARYH
	MOVLW	1
	BTFSC	BINARYH,1
	XORWF	BINARYH
	MOVLW	80
	BTFSC	BINARYH,0
	XORWF	BINARYL
	MOVLW	40
	BTFSC	BINARYL,7
	XORWF	BINARYL
	MOVLW	20
	BTFSC	BINARYL,6
	XORWF	BINARYL
	MOVLW	10
	BTFSC	BINARYL,5
	XORWF	BINARYL
	MOVLW	8
	BTFSC	BINARYL,4
	XORWF	BINARYL
	MOVLW	4
	BTFSC	BINARYL,3
	XORWF	BINARYL
	MOVLW	2
	BTFSC	BINARYL,2
	XORWF	BINARYL
	MOVLW	1
	BTFSC	BINARYL,1
	XORWF	BINARYL
	RETURN
picavr вне форума  
Закрытая тема

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из Hex в ассемблер и потом в СИ 1864961 Цифровые сигнальные процессоры 12 14.02.2012 16:59
Ассемблер для AVR. Andrewg Микроконтроллеры, АЦП, память и т.д 46 26.09.2011 16:55
ассемблер и ARV (посмотрите код) FedorChek Микроконтроллеры, АЦП, память и т.д 50 26.02.2009 19:14
преобразователь код-код zazan111 TTL и CMOS логика 18 05.01.2009 06:11
Ассемблер PIC AnB Микроконтроллеры, АЦП, память и т.д 12 01.07.2005 03:07


Часовой пояс GMT +4, время: 03:08.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot