[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Стандартный код Грея образуется из обычного двоичного кода с помощью формулы:
G = B^(B >> 1); //(обозначения языка С)
обратное преобразование сложнее:
B = G; while(G >>=1) { B ^= G};
Достоиноством этого кода является то, что две соседние комбинации отличаются друг от друга на 1 разряд. Поэтому он применяется в датчиках угла или перемещения - при повороте кодового диска не появляются ложные комбинации из-за неодновременности замыкания контактов. В датчике BOURNS применен модифицированный код Грея. Если посмотреть на кодовую таблицу, то вертикальные столбики нулей - это контактные дорожки кодового диска. Все дорожки имеют одинаковую длину,а каждая колонка - повторение соседней колонки только сдвинутая по вертикали. На самом деле на диске делаются металлические сектора, а контакты сдвинуты друг относительно друга на определенный угол, при этом контакты относящиеся к разным разрядам могут лежать на одной окружности, что уменьшает размеры датчика. Код имеет то же свойство что и обычный - при повороте диска только один контакт замыкается или размыкается при переходе от одной комбинации к другой.
Формулы для пересчета такого кода в двоичный код я не знаю,(а может ее и нет) использую таблицу.
E-mail: info@telesys.ru