Код Грея Рассмотрим применение кода Грея на примере датчика линейного положения. Кодовый датчик положения должен преобразовывать линейное положение объекта в цифровой код. Обычно, для этого применяют кодовую линейку (например, код нанесенный на прозрачном материале черной краской), код текущего положения которой считывается датчиками. Обычный двоичный код для этой цели неприемлем. Рассмотрим, например, что может произойти, когда код меняется с 7 на 8. Двоичный код семерки, это - 111, а восьмерки – 1000. Как видно, при переходе из положения 7 в положение 8, меняется сразу 4 бита данных. Если при этом, датчик находится в промежуточном положении, то любой из изменяющихся битов, может быть считан либо в прежнем значении, либо в новом. То есть может быть считан код - xxxx, где x – значение бита 0 или 1. В итоге может быть считан любой код от 0 (0000) до 15(1111). Этого не произойдет, если применить, например, код Грея, в котором, каждое последующее состояние отличается от предыдущего только на один бит. Данная программа генерирует код Грея, используя логические операторы. Т.е. она фактически повторяет цифровую схемотехнику кодировщика двоичного кода в код Грея. На выходе программа рисует кодовую линейку на 256 положений (код от 0 до 255). Реальную кодовую линейку вы можете увидеть в разделе данного сайта – Electronic's Visio Stencils. Там дан рисунок кодовой линейки на 256 положений в формате Visio 4.5.