void OutputPin::write(uint8_t value, OutputPin& clk, Direction order) { uint8_t bits = CHARBITS; if (order == MSB_FIRST) { synchronized do { _write(value & 0x80); clk._toggle(); value <<= 1; clk._toggle(); } while (--bits); }
void OutputPin::write(uint8_t value, OutputPin& clk, Direction order) const { uint8_t bits = CHARBITS; if (order == MSB_FIRST) { do { _write(value & 0x80); clk._toggle(); value <<= 1; clk._toggle(); } while (--bits); } else { do { _write(value & 0x01); clk._toggle(); value >>= 1; clk._toggle(); } while (--bits); } }