sta-core/src/spi_device.cpp
2022-04-11 12:45:04 +02:00

62 lines
1.1 KiB
C++

#include <sta/spi_device.hpp>
namespace sta
{
SpiDevice::SpiDevice(SpiInterface * intf)
: intf_{intf}
{}
void SpiDevice::beginTransmission()
{
// Acquire SPI access and activate device
intf_->acquire();
select();
}
void SpiDevice::endTransmission()
{
// Deactivate device and release SPI access
deselect();
intf_->release();
}
// Forward I/O operations to SPI interface
void SpiDevice::transfer(uint8_t data)
{
intf_->transfer(data);
}
void SpiDevice::transfer(const uint8_t * data, size_t size)
{
intf_->transfer(data, size);
}
void SpiDevice::transfer(const uint8_t * txBuffer, uint8_t * rxBuffer, size_t size)
{
intf_->transfer(txBuffer, rxBuffer, size);
}
void SpiDevice::transfer16(uint16_t data)
{
intf_->transfer16(data);
}
void SpiDevice::fill(uint8_t value, size_t count)
{
intf_->fill(value, count);
}
void SpiDevice::fill32(uint32_t value, size_t count)
{
intf_->fill32(value, count);
}
void SpiDevice::receive(uint8_t * buffer, size_t size)
{
intf_->receive(buffer, size);
}
} // namespace sta