25 #ifndef ACE_SEGMENT_SOFT_TMI_INTERFACE_H
26 #define ACE_SEGMENT_SOFT_TMI_INTERFACE_H
30 namespace ace_segment {
81 mDelayMicros(delayMicros)
91 digitalWrite(mClkPin, LOW);
92 digitalWrite(mDioPin, LOW);
128 for (uint8_t i = 0; i < 8; ++i) {
147 uint8_t readAck()
const {
150 uint8_t ack = digitalRead(mDioPin);
158 void bitDelay()
const { delayMicroseconds(mDelayMicros); }
160 void clockHigh()
const { pinMode(mClkPin, INPUT); bitDelay(); }
162 void clockLow()
const { pinMode(mClkPin, OUTPUT); bitDelay(); }
164 void dataHigh()
const { pinMode(mDioPin, INPUT); bitDelay(); }
166 void dataLow()
const { pinMode(mDioPin, OUTPUT); bitDelay(); }
169 uint8_t
const mDioPin;
170 uint8_t
const mClkPin;
171 uint8_t
const mDelayMicros;