So it's really this line self.DEVICE_REG_DATA &= ~(0x1<<0) that's causing my trouble.This is just a wild guess since I don't know python, but I suspect it clears the least significant bit of the value stored in the DEVICE_REG_DATA variable.
The &= looks like a read-modify-write register operation. My guess is that &= is the AND-EQUAL bit-wise operator and ~ is the bit-wise negation operator. (0x1 << 0) is simplified as 0x1, which is represented in binary format as 0000_0001 (8 bits). 0000_0001 negated is 1111_1110. So the line is probably equivalent to the pseudo-code:
self.DEVICE_REG_DATA = self.DEVICE_REG_DATA & 1111_1110
UPDATE: Added note to explicitly state that the code example I gave is pseudo.
In reply to Re: I2C help (from python)
by toolic
in thread I2C help (from python)
by packetstormer
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |