25 #ifndef ACE_TMI_SIMPLE_TMI_1638_FAST_INTERFACE_H
26 #define ACE_TMI_SIMPLE_TMI_1638_FAST_INTERFACE_H
72 uint8_t T_DELAY_MICROS
91 pinModeFast(T_CLK_PIN, OUTPUT);
92 pinModeFast(T_STB_PIN, OUTPUT);
98 pinModeFast(T_CLK_PIN, INPUT);
99 pinModeFast(T_STB_PIN, INPUT);
127 for (uint8_t i = 0; i < 8; ++i) {
165 for (uint8_t i = 0; i < 8; ++i) {
168 uint8_t bit = dataRead();
171 data |= (bit & 0x1) ? 0x80 : 0x00;
183 static void bitDelay() { delayMicroseconds(T_DELAY_MICROS); }
185 static void clockHigh() { digitalWriteFast(T_CLK_PIN, HIGH); bitDelay(); }
187 static void clockLow() { digitalWriteFast(T_CLK_PIN, LOW); bitDelay(); }
189 static void dataHigh() { pinModeFast(T_DIO_PIN, INPUT); bitDelay(); }
191 static void dataLow() { pinModeFast(T_DIO_PIN, OUTPUT); bitDelay(); }
193 static void strobeHigh() { digitalWriteFast(T_STB_PIN, HIGH); bitDelay(); }
195 static void strobeLow() { digitalWriteFast(T_STB_PIN, LOW); bitDelay(); }
197 static uint8_t dataRead() {
200 uint8_t data = digitalRead(T_DIO_PIN);