PicoGraphics: Support for Explorer.

This commit is contained in:
Phil Howard 2024-08-07 22:36:59 +01:00 committed by Phil Howard
parent 3e16e1228f
commit 078f3e6a39
4 changed files with 18 additions and 3 deletions

View File

@ -58,9 +58,10 @@ namespace pimoroni {
cs(pins.cs), dc(pins.dc), wr_sck(pins.wr_sck), rd_sck(pins.rd_sck), d0(pins.d0), bl(pins.bl) {
parallel_pio = pio1;
pio_set_gpio_base(parallel_pio, d0 + 8 >= 32 ? 16 : 0);
parallel_sm = pio_claim_unused_sm(parallel_pio, true);
parallel_offset = pio_add_program(parallel_pio, &st7789_parallel_program);
//gpio_init(wr_sck);
//gpio_set_dir(wr_sck, GPIO_OUT);
//gpio_set_function(wr_sck, GPIO_FUNC_SIO);

View File

@ -157,6 +157,7 @@ static const mp_map_elem_t picographics_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_DISPLAY_UNICORN_PACK), MP_ROM_INT(DISPLAY_UNICORN_PACK) },
{ MP_ROM_QSTR(MP_QSTR_DISPLAY_SCROLL_PACK), MP_ROM_INT(DISPLAY_SCROLL_PACK) },
{ MP_ROM_QSTR(MP_QSTR_DISPLAY_PICO_W_EXPLORER), MP_ROM_INT(DISPLAY_PICO_W_EXPLORER) },
{ MP_ROM_QSTR(MP_QSTR_DISPLAY_EXPLORER), MP_ROM_INT(DISPLAY_EXPLORER) },
{ MP_ROM_QSTR(MP_QSTR_PEN_1BIT), MP_ROM_INT(PEN_1BIT) },
{ MP_ROM_QSTR(MP_QSTR_PEN_P4), MP_ROM_INT(PEN_P4) },

View File

@ -44,6 +44,13 @@ typedef struct _ModPicoGraphics_obj_t {
bool get_display_settings(PicoGraphicsDisplay display, int &width, int &height, int &rotate, int &pen_type, PicoGraphicsBusType &bus_type) {
switch(display) {
case DISPLAY_EXPLORER:
width = 320;
height = 240;
bus_type = BUS_PARALLEL;
if(rotate == -1) rotate = (int)Rotation::ROTATE_0;
if(pen_type == -1) pen_type = PEN_RGB565;
break;
case DISPLAY_PICO_DISPLAY:
width = 240;
height = 135;
@ -335,6 +342,10 @@ mp_obj_t ModPicoGraphics_make_new(const mp_obj_type_t *type, size_t n_args, size
} else if (display == DISPLAY_PICO_W_EXPLORER) {
spi_bus = {PIMORONI_SPI_DEFAULT_INSTANCE, 17, SPI_DEFAULT_SCK, SPI_DEFAULT_MOSI, PIN_UNUSED, SPI_DEFAULT_MISO, 9};
}
} else if (bus_type == BUS_PARALLEL) {
if (display == DISPLAY_EXPLORER) {
parallel_bus = {27, 28, 30, 31, 32, 26};
}
}
}
@ -349,7 +360,8 @@ mp_obj_t ModPicoGraphics_make_new(const mp_obj_type_t *type, size_t n_args, size
// TODO grab BUSY and RESET from ARG_extra_pins
self->display = m_new_class(Inky73, width, height, (Rotation)rotate, spi_bus);
} else if (display == DISPLAY_TUFTY_2040) {
} else if (display == DISPLAY_TUFTY_2040
|| display == DISPLAY_EXPLORER) {
self->display = m_new_class(ST7789, width, height, (Rotation)rotate, parallel_bus);
} else if (display == DISPLAY_LCD_160X80) {

View File

@ -30,7 +30,8 @@ enum PicoGraphicsDisplay {
DISPLAY_STELLAR_UNICORN,
DISPLAY_UNICORN_PACK,
DISPLAY_SCROLL_PACK,
DISPLAY_PICO_W_EXPLORER
DISPLAY_PICO_W_EXPLORER,
DISPLAY_EXPLORER
};
enum PicoGraphicsPenType {