#include "_Spi.h" SpiDevice::SpiDevice() { /* */ } void SpiDevice::begin() { /* Use the default chip select pin as specified by the SS define in the header. */ begin(SS); } void SpiDevice::begin(byte selectPin) { /* */ _selectPin = selectPin; _initPins(); _initSpi(); } void SpiDevice::_initPins() { /* Initialise the pins used for SPI communication. */ pinMode(MOSI, OUTPUT); pinMode(MISO, INPUT); pinMode(SCK, OUTPUT); pinMode(_selectPin, OUTPUT); deselect(); } void SpiDevice::_initSpi() { /* Initialise SPI system. */ // From Table 18-5 in ATmega 48/88/168 datasheet: // // SPI2X | SPR1 | SPR0 | SCK Frequency // 1 | 0 | 0 | f_osc/2 // // Where f_osc is the Oscillator Clock frequency // // This is the highest SPI clock frequency supported. SPCR = (1<