Yeah, now that's more like it!
SPI SCK @ 42MHz, no deadtime, 100 bytes transferred in 19.04µs!
5.25 MBps (42Mbps)
#include <TurboSPI.h>
TurboSPI g_SPI;
DigitalPin g_PinCS, g_PinRS;
uint8_t g_Buffer[100]; // some data buffer to transfer
uint8_t g_Divisor = 2; // transfer speed set to MCU's clock divide by 2
void setup()
{
// setup pins
g_PinCS.Begin(45);
g_PinRS.Begin(47);
g_PinCS.PinMode(OUTPUT);
g_PinRS.PinMode(OUTPUT);
// setup SPI
g_SPI.Begin();
// fill the buffer with data
for (uint8_t i = 0; i < sizeof(g_Buffer); i++) {
g_Buffer[i] = i + 1;
}
}
void loop()
{
// setup speed and select slave
g_SPI.Init(g_Divisor);
g_PinCS.Low();
// set some pins
g_PinRS.High();
// transfer data to slave
g_SPI.Send(g_Buffer, sizeof(g_Buffer));
// unselect slave
g_PinCS.High();
}