
unsigned char gray_to_bin8(unsigned char n) {
    unsigned char i;
    for (i = 0x80; i > 1;) {
        if (n & i) {
            i >>= 1;
            n ^= i;
        } else {
            i >>= 1;
        }
    }
    return n;
}
