Program Listing for File pal-spic-arduino.cpp
↰ Return to documentation for file (src/framework/arduino/pal/pal-spic-arduino.cpp)
#include "pal-spic-arduino.hpp"
using namespace tle5012;
SPICIno::SPICIno(uint8_t csPin)
{
this->csPin = csPin;
#if defined(UC_FAMILY) && (UC_FAMILY == 1 || UC_FAMILY == 4)
this->spi = (SPIClass3W *) &SPI;
#else
this->spi = new SPIClass3W();
#endif
}
SPICIno::SPICIno(SPIClass3W &port, uint8_t csPin, uint8_t misoPin, uint8_t mosiPin, uint8_t sckPin)
{
this->csPin = csPin;
this->misoPin = misoPin;
this->mosiPin = mosiPin;
this->sckPin = sckPin;
this->spi = &port;
}
Error_t SPICIno::init()
{
this->spi->begin(this->misoPin, this->mosiPin, this->sckPin, this->csPin);
return OK;
}
Error_t SPICIno::deinit()
{
this->spi->endTransaction();
this->spi->end();
return OK;
}
Error_t SPICIno::triggerUpdate()
{
digitalWrite(this->sckPin, LOW);
digitalWrite(this->mosiPin, HIGH);
digitalWrite(this->csPin, LOW);
//grace period for register snapshot
delayMicroseconds(5);
digitalWrite(this->csPin, HIGH);
return OK;
}
Error_t SPICIno::sendReceive(uint16_t* sent_data, uint16_t size_of_sent_data, uint16_t* received_data, uint16_t size_of_received_data)
{
this->spi->setCSPin(this->csPin);
this->spi->sendReceiveSpi(sent_data,size_of_sent_data,received_data,size_of_received_data);
return OK;
}