diff --git a/main/boards/atk-dnesp32s3-box/atk_dnesp32s3_box.cc b/main/boards/atk-dnesp32s3-box/atk_dnesp32s3_box.cc index e5f4d8a7..b875c3a7 100644 --- a/main/boards/atk-dnesp32s3-box/atk_dnesp32s3_box.cc +++ b/main/boards/atk-dnesp32s3-box/atk_dnesp32s3_box.cc @@ -39,14 +39,16 @@ public: void SetOutputState(uint8_t bit, uint8_t level) { uint16_t data; + int index = bit; + if (bit < 8) { data = ReadReg(0x02); } else { data = ReadReg(0x03); - bit -= 8; + index -= 8; } - data = (data & ~(1 << bit)) | (level << bit); + data = (data & ~(1 << index)) | (level << index); if (bit < 8) { WriteReg(0x02, data); diff --git a/main/boards/atk-dnesp32s3/atk_dnesp32s3.cc b/main/boards/atk-dnesp32s3/atk_dnesp32s3.cc index 906eefa8..158c9358 100644 --- a/main/boards/atk-dnesp32s3/atk_dnesp32s3.cc +++ b/main/boards/atk-dnesp32s3/atk_dnesp32s3.cc @@ -28,14 +28,16 @@ public: void SetOutputState(uint8_t bit, uint8_t level) { uint16_t data; + int index = bit; + if (bit < 8) { data = ReadReg(0x02); } else { data = ReadReg(0x03); - bit -= 8; + index -= 8; } - data = (data & ~(1 << bit)) | (level << bit); + data = (data & ~(1 << index)) | (level << index); if (bit < 8) { WriteReg(0x02, data);