#ifndef LCD_DRIVER_H #define LCD_DRIVER_H #include "pico/stdlib.h" #include "hardware/spi.h" #define SPI_PORT spi0 #define PIN_MISO 16 #define PIN_CS 17 #define PIN_SCK 18 #define PIN_MOSI 19 #define PIN_DC 20 #define PIN_RST 21 #define PIN_T_CS 16 class LCD_Driver { public: LCD_Driver(); void init(); void drawHSBBackground(); void drawPixel(uint16_t x, uint16_t y, uint16_t color); void drawString(uint16_t x, uint16_t y, const char* str, uint8_t size); void drawNumber(uint16_t x, uint16_t y, const char* label, int num, uint8_t size); private: void writeCommand(uint8_t cmd); void writeData(uint8_t data); void setAddrWindow(uint16_t x, uint16_t y, uint16_t w, uint16_t h); uint16_t hsvToRgb565(float h, float s, float v); }; bool is_touched(); void update_hue_on_tap(); #endif