#ifndef SSIdSpin_h
#define SSIdSpin_h
#include "Energia.h"
#include <SSI.h>
#include <driverlib/sysctl.h>
class SsiDeviceQueue;
class OutputPin;
// Parameters for L6470 compatibility - L6470 Max shift clock is 5 Mhz
class SSIdSpin : public SSI {
public:
SSIdSpin(
char* data,
String* msgPtr );
~SSIdSpin();
SsiDeviceQueue* firstSsiDeviceQueue;
SsiDeviceQueue*
ssiDeviceQueueWithNumber( uint32_t deviceNum );
void
eotIntHandler();
void
enableSsiInterrupt();
void
disableSsiInterrupt();
private:
uint32_t devices;
OutputPin* resetPin; // common
OutputPin* chipSelect; // dSpin
bool
autoDetectDevices();
bool
detectDevices();
void
create_SsiDeviceQueues();
void
startSsiInterrupt();
void
endSsiInterrupt();
};
#endif