25 #ifndef ACE_SPI_SIMPLE_SPI_FAST_INTERFACE_H
26 #define ACE_SPI_SIMPLE_SPI_FAST_INTERFACE_H
41 template <u
int8_t T_LATCH_PIN, u
int8_t T_DATA_PIN, u
int8_t T_CLOCK_PIN>
49 pinModeFast(T_LATCH_PIN, OUTPUT);
50 pinModeFast(T_DATA_PIN, OUTPUT);
51 pinModeFast(T_CLOCK_PIN, OUTPUT);
56 pinModeFast(T_LATCH_PIN, INPUT);
57 pinModeFast(T_DATA_PIN, INPUT);
58 pinModeFast(T_CLOCK_PIN, INPUT);
62 void send8(uint8_t value)
const {
63 digitalWriteFast(T_LATCH_PIN, LOW);
65 digitalWriteFast(T_LATCH_PIN, HIGH);
70 uint8_t msb = (value & 0xff00) >> 8;
71 uint8_t lsb = (value & 0xff);
76 void send16(uint8_t msb, uint8_t lsb)
const {
77 digitalWriteFast(T_LATCH_PIN, LOW);
80 digitalWriteFast(T_LATCH_PIN, HIGH);
88 static void shiftOutFast(uint8_t output) {
90 for (uint8_t i = 0; i < 8; i++) {
91 digitalWriteFast(T_CLOCK_PIN, LOW);
93 digitalWriteFast(T_DATA_PIN, HIGH);
95 digitalWriteFast(T_DATA_PIN, LOW);
97 digitalWriteFast(T_CLOCK_PIN, HIGH);