24 public spi::SPIDevice<spi::BIT_ORDER_MSB_FIRST, spi::CLOCK_POLARITY_LOW, spi::CLOCK_PHASE_LEADING,
25 spi::DATA_RATE_10MHZ> {
28 uint8_t row_start, uint8_t row_end,
const uint8_t *init_sequence,
size_t init_sequence_length)
37 buffer_length_(static_cast<size_t>(width) * static_cast<size_t>(height) / 8),
41 void setup()
override;
65 return static_cast<size_t>(this->outer_end - this->outer_start + 1) *
66 static_cast<size_t>(this->block_end - this->block_start + 1);
virtual void digital_write(bool value)=0
The SPIDevice is what components using the SPI will create.
void write_byte(uint8_t data)
void write_array(const uint8_t *data, size_t length)
Sitronix ST7305/ST7306 reflective monochrome LCD, 1 bit per pixel.
void set_reset_pin(GPIOPin *reset_pin)
void draw_absolute_pixel_internal(int x, int y, Color color) override
void write_window_(const Window &window)
float get_setup_priority() const override
static constexpr uint32_t STARTUP_TIMEOUT_ID
Scheduler id for the non-blocking reset and init sequence.
void set_dc_pin(GPIOPin *dc_pin)
void extend_dirty_(int x0, int y0, int x1, int y1)
void send_data_(const uint8_t *data, size_t length)
void send_init_sequence_()
const uint8_t * init_sequence_
void send_command_(uint8_t command)
void dump_config() override
ST7305(const char *model, int width, int height, Orientation orientation, uint8_t column_start, uint8_t column_end, uint8_t row_start, uint8_t row_end, const uint8_t *init_sequence, size_t init_sequence_length)
int get_height_internal() override
display::DisplayType get_display_type() override
Window compute_window_() const
size_t init_sequence_length_
int get_width_internal() override
void fill(Color color) override
constexpr float PROCESSOR
For components that use data from sensors like displays.
An addressable write window.
size_t data_length() const