Accessing and storing a bit from a uint8
I got an idea, at least I would do it like this. So,
 bit_value = ((uint8_variable&gt;&gt;BIT_NEEDED)&amp;1)
So this would shift the bit you need in LSB position, and the &amp; operator would mask the other bits. Example: uint8_variable = 0110 1010
BIT_NEEDED=3
0110 1010 &gt;&gt; 3 = 0000 1101
0000 1101 &amp; 0000 0001 = 0000 0001

I think this should work properly. Remember to count bits from 0.