[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ:
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Voldemar 23 ноября 2001 г. 19:22
В ответ на: Простите за неуместный вопрос, но что есть код Грея? В чем его особенность? отправлено Leks 23 ноября 2001 г. 12:36

Стандартный код Грея образуется из обычного двоичного кода с помощью формулы:

G = B^(B >> 1); //(обозначения языка С)

обратное преобразование сложнее:

B = G; while(G >>=1) { B ^= G};

Достоиноством этого кода является то, что две соседние комбинации отличаются друг от друга на 1 разряд. Поэтому он применяется в датчиках угла или перемещения - при повороте кодового диска не появляются ложные комбинации из-за неодновременности замыкания контактов. В датчике BOURNS применен модифицированный код Грея. Если посмотреть на кодовую таблицу, то вертикальные столбики нулей - это контактные дорожки кодового диска. Все дорожки имеют одинаковую длину,а каждая колонка - повторение соседней колонки только сдвинутая по вертикали. На самом деле на диске делаются металлические сектора, а контакты сдвинуты друг относительно друга на определенный угол, при этом контакты относящиеся к разным разрядам могут лежать на одной окружности, что уменьшает размеры датчика. Код имеет то же свойство что и обычный - при повороте диска только один контакт замыкается или размыкается при переходе от одной комбинации к другой.
Формулы для пересчета такого кода в двоичный код я не знаю,(а может ее и нет) использую таблицу.


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru