3#include "roo_backport.h"
4#include "roo_backport/byte.h"
12template <
int pinCS,
typename SpiDevice,
typename Gpio>
16 device_.beginReadWriteTransaction();
21 device_.endTransaction();
37template <
int pinCS,
int pinDC,
int pinRST,
typename SpiSettings,
38 typename Spi = DefaultSpi,
typename Gpio =
DefaultGpio>
41 template <
typename...
Args>
44 Gpio::setOutput(
pinCS);
48 Gpio::setOutput(
pinDC);
76 void init() { device_.init(); }
91 device_.write16(data);
95 device_.write16x2(a, b);
99 device_.writeBytes(data,
len);
116 return device_.transfer(data);
120 return device_.transfer16(data);
125 typename Spi::Device<SpiSettings> device_;
128 void dc_d() { Gpio::template setHigh<pinDC>(); }
129 void cs_l() { Gpio::template setLow<pinCS>(); }
130 void cs_h() { Gpio::template setHigh<pinCS>(); }
~SpiReadWriteTransaction()
SpiReadWriteTransaction(SpiDevice &device)
void writeBytes(const roo::byte *data, uint32_t len)
void end() __attribute__((always_inline))
void write16(uint16_t data) __attribute__((always_inline))
void cmdBegin() __attribute__((always_inline))
void beginReadWriteTransaction()
SpiTransport(Args &&... args)
void cmdEnd() __attribute__((always_inline))
void beginWriteOnlyTransaction()
void flush() __attribute__((always_inline))
uint16_t transfer16(uint16_t data) __attribute__((always_inline))
void fill24(const roo::byte *data, uint32_t repetitions)
roo::byte transfer(roo::byte data) __attribute__((always_inline))
void write16x2(uint16_t a, uint16_t b) __attribute__((always_inline))
void begin() __attribute__((always_inline))
void fill16(const roo::byte *data, uint32_t repetitions)
void write(uint8_t data) __attribute__((always_inline))
void async_blit(const roo::byte *data, size_t row_stride_bytes, size_t row_bytes, size_t row_count)
Defines 140 opaque HTML named colors.