Skip to content
Snippets Groups Projects
scope.cpp 1.23 KiB
#include <stdio.h>
#include "pico_display.hpp"
#include "drivers/st7789/st7789.hpp"
#include "libraries/pico_graphics/pico_graphics.hpp"
#include "rgbled.hpp"
#include "button.hpp"

using namespace pimoroni;

// Display driver
ST7789 st7789(PicoDisplay::WIDTH, PicoDisplay::HEIGHT, ROTATE_0, false, get_spi_pins(BG_SPI_FRONT));

// Graphics library - in RGB332 mode you get 256 colours and optional dithering for ~32K RAM.
PicoGraphics_PenRGB332 graphics(st7789.width, st7789.height, nullptr);

// RGB LED
RGBLED led(PicoDisplay::LED_R, PicoDisplay::LED_G, PicoDisplay::LED_B);

// And each button
Button button_a(PicoDisplay::A);
Button button_b(PicoDisplay::B);
Button button_x(PicoDisplay::X);
Button button_y(PicoDisplay::Y);

uint8_t red, green, blue;

int main() {

  led.set_rgb(red, green, blue);
  st7789.set_backlight(255);
  while(true) {
    if(button_a.read()) red++;
    if(button_b.read()) green++;
    if(button_x.read()) blue++;


    led.set_rgb(red, green, blue);
    graphics.set_pen(255-red, 255-green, 255-blue);
    graphics.clear();
    graphics.set_pen(red, green, blue);

    char buf[100];
    sprintf(buf, "Colour = #%02x%02x%02x", red, green, blue);
    graphics.text(buf, Point(20,20), 100);

    st7789.update(&graphics);
  }
}