25 #ifndef ACE_SPI_HARD_SPI_FAST_INTERFACE_H
26 #define ACE_SPI_HARD_SPI_FAST_INTERFACE_H
53 uint32_t T_CLOCK_SPEED = 8000000
62 #if defined(ARDUINO_ARCH_STM32) || defined(ARDUINO_ARCH_SAMD)
63 static const BitOrder kBitOrder = MSBFIRST;
65 static const uint8_t kBitOrder = MSBFIRST;
69 static const uint8_t kSpiMode = SPI_MODE0;
97 pinModeFast(T_LATCH_PIN, OUTPUT);
102 pinModeFast(T_LATCH_PIN, INPUT);
107 mSpi.beginTransaction(SPISettings(T_CLOCK_SPEED, kBitOrder, kSpiMode));
108 digitalWriteFast(T_LATCH_PIN, LOW);
109 mSpi.transfer(value);
110 digitalWriteFast(T_LATCH_PIN, HIGH);
111 mSpi.endTransaction();
116 mSpi.beginTransaction(SPISettings(T_CLOCK_SPEED, kBitOrder, kSpiMode));
117 digitalWriteFast(T_LATCH_PIN, LOW);
118 mSpi.transfer16(value);
119 digitalWriteFast(T_LATCH_PIN, HIGH);
120 mSpi.endTransaction();
124 void send16(uint8_t msb, uint8_t lsb)
const {
125 uint16_t value = ((uint16_t) msb) << 8 | (uint16_t) lsb;