Use bit based communication with drawers
This commit is contained in:
parent
7a77347bc2
commit
876b2f0db6
@ -5,15 +5,18 @@ void resetPuzzles();
|
|||||||
|
|
||||||
/* ========================================================= */
|
/* ========================================================= */
|
||||||
const uint8_t ARCHIV_ADDR = 0x10;
|
const uint8_t ARCHIV_ADDR = 0x10;
|
||||||
const uint8_t CMD_POWER_OFF = 0x01;
|
|
||||||
const uint8_t CMD_LIGHT_INDEX = 0x02;
|
const uint8_t BITMASK_CMD = 0b00011000;
|
||||||
const uint8_t CMD_DRAWER_INDEX = 0x03;
|
const uint8_t BITMASK_PAYLOAD = 0b00000111;
|
||||||
|
|
||||||
|
const uint8_t CMD_POWER_OFF = 0b00001000;
|
||||||
|
const uint8_t CMD_LIGHT_INDEX = 0b00010000;
|
||||||
|
const uint8_t CMD_DRAWER_INDEX = 0b00011000;
|
||||||
|
|
||||||
void setDrawerLight(uint8_t index)
|
void setDrawerLight(uint8_t index)
|
||||||
{
|
{
|
||||||
Wire.beginTransmission(ARCHIV_ADDR);
|
Wire.beginTransmission(ARCHIV_ADDR);
|
||||||
Wire.write(CMD_LIGHT_INDEX);
|
Wire.write(CMD_LIGHT_INDEX | (index & BITMASK_PAYLOAD));
|
||||||
Wire.write(index);
|
|
||||||
Wire.endTransmission();
|
Wire.endTransmission();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -27,8 +30,7 @@ void turnLightsOff()
|
|||||||
void openDrawer(uint8_t index)
|
void openDrawer(uint8_t index)
|
||||||
{
|
{
|
||||||
Wire.beginTransmission(ARCHIV_ADDR);
|
Wire.beginTransmission(ARCHIV_ADDR);
|
||||||
Wire.write(CMD_DRAWER_INDEX);
|
Wire.write(CMD_DRAWER_INDEX | (index & BITMASK_PAYLOAD));
|
||||||
Wire.write(index);
|
|
||||||
Wire.endTransmission();
|
Wire.endTransmission();
|
||||||
}
|
}
|
||||||
/* ========================================================= */
|
/* ========================================================= */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user