Gray Code Function

This function returns the gray code representation of the supplied bit count.

Gray code is useful in that it is a binary representation of values where only one bit changes at a time as the represented number increases. This allows reliable sensing of magnets or holes for linear or rotary encoders.

The function supports bit counts from 2 to 8 and is hard coded.