25 #ifndef ACE_TMI_SIMPLE_TMI_1637_FAST_INTERFACE_H
26 #define ACE_TMI_SIMPLE_TMI_1637_FAST_INTERFACE_H
73 uint8_t T_DELAY_MICROS
90 digitalWriteFast(T_CLK_PIN, LOW);
91 digitalWriteFast(T_DIO_PIN, LOW);
135 for (uint8_t i = 0; i < 8; ++i) {
154 uint8_t ack = readAck();
175 for (uint8_t i = 0; i < 8; ++i) {
178 uint8_t bit = dataRead();
181 data |= (bit & 0x1) ? 0x80 : 0x00;
185 uint8_t ack = readAck();
203 uint8_t readAck()
const {
210 uint8_t ack = digitalReadFast(T_DIO_PIN);
217 static void bitDelay() { delayMicroseconds(T_DELAY_MICROS); }
219 static void clockHigh() { pinModeFast(T_CLK_PIN, INPUT); bitDelay(); }
221 static void clockLow() { pinModeFast(T_CLK_PIN, OUTPUT); bitDelay(); }
223 static void dataHigh() { pinModeFast(T_DIO_PIN, INPUT); bitDelay(); }
225 static void dataLow() { pinModeFast(T_DIO_PIN, OUTPUT); bitDelay(); }
227 static uint8_t dataRead() {
230 uint8_t data = digitalRead(T_DIO_PIN);