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