pimoroni-pico/libraries/generic_st7789/generic_st7789.hpp

66 lines
2.5 KiB
C++
Raw Normal View History

#pragma once
#include "drivers/st7789/st7789.hpp"
#include "libraries/pico_graphics/pico_graphics.hpp"
namespace pimoroni {
class ST7789Generic : public PicoGraphics {
private:
ST7789 st7789;
public:
ST7789Generic(uint16_t width, uint16_t height, bool round=false, void *frame_buffer=nullptr) :
PicoGraphics(width, height, frame_buffer),
st7789(width, height, round, frame_buffer, PIMORONI_SPI_DEFAULT_INSTANCE, SPI_BG_FRONT_CS, SPI_DEFAULT_MISO, SPI_DEFAULT_SCK, SPI_DEFAULT_MOSI, SPI_BG_FRONT_PWM) {
2022-05-25 17:22:20 +01:00
this->frame_buffer = (Pen *)st7789.frame_buffer;
this->st7789.init();
this->st7789.update(palette);
};
ST7789Generic(uint16_t width, uint16_t height, bool round, void *frame_buffer, BG_SPI_SLOT slot) :
PicoGraphics(width, height, frame_buffer),
st7789(width, height, round, frame_buffer, PIMORONI_SPI_DEFAULT_INSTANCE, st7789.get_slot_cs(slot), SPI_DEFAULT_MISO, SPI_DEFAULT_SCK, SPI_DEFAULT_MOSI, st7789.get_slot_bl(slot)) {
2022-05-25 17:22:20 +01:00
this->frame_buffer = (Pen *)st7789.frame_buffer;
this->st7789.init();
this->st7789.update(palette);
};
ST7789Generic(uint16_t width, uint16_t height, bool round, void *frame_buffer,
spi_inst_t *spi,
uint cs, uint dc, uint sck, uint mosi, uint bl = PIN_UNUSED) :
PicoGraphics(width, height, frame_buffer),
st7789(width, height, round, frame_buffer, spi, cs, dc, sck, mosi, bl) {
2022-05-25 17:22:20 +01:00
this->frame_buffer = (Pen *)st7789.frame_buffer;
this->st7789.init();
this->st7789.update(palette);
};
ST7789Generic(uint16_t width, uint16_t height, void *frame_buffer,
2022-05-25 10:44:14 +01:00
uint cs, uint dc, uint wr_sck, uint rd_sck, uint d0, uint bl = PIN_UNUSED) :
PicoGraphics(width, height, frame_buffer),
st7789(width, height, frame_buffer, cs, dc, wr_sck, rd_sck, d0, bl) {
2022-05-25 17:22:20 +01:00
this->frame_buffer = (Pen *)st7789.frame_buffer;
2022-05-25 10:44:14 +01:00
this->st7789.init();
this->st7789.update(palette);
2022-05-25 10:44:14 +01:00
};
spi_inst_t* get_spi() const;
int get_cs() const;
int get_dc() const;
int get_sck() const;
int get_mosi() const;
int get_bl() const;
void update();
[[deprecated("Use configure_display(true) instead.")]] void flip();
void set_backlight(uint8_t brightness);
void configure_display(bool rotate180);
void set_framebuffer(void* frame_buffer) {
this->frame_buffer = (Pen *)frame_buffer;
st7789.frame_buffer = frame_buffer;
}
};
}