48 lines
1.8 KiB
C
48 lines
1.8 KiB
C
#ifndef SHARP_DISPLAY
|
|
#define SHARP_DISPLAY
|
|
|
|
#include "hardware/spi.h"
|
|
|
|
// LSB format
|
|
#define CMD_WRITE 0b10000000
|
|
#define CMD_VCOM 0b01000000
|
|
#define CMD_CLEAR 0b00100000
|
|
|
|
typedef enum sharp_color
|
|
{
|
|
WHITE,
|
|
LIGHT_GRAY,
|
|
DARK_GRAY,
|
|
BLACK,
|
|
}
|
|
sharp_color_t;
|
|
|
|
typedef struct sharp_display
|
|
{
|
|
uint16_t width, height;
|
|
uint8_t cs;
|
|
uint8_t vcom;
|
|
uint8_t * framebuffer;
|
|
spi_inst_t * spi;
|
|
}
|
|
sharp_display_t;
|
|
|
|
sharp_display_t sharp_display_new(uint16_t width, uint16_t height, spi_inst_t * spi, uint8_t cs);
|
|
bool sharp_display_error(sharp_display_t * display);
|
|
|
|
void sharp_display_refresh_screen(sharp_display_t * display);
|
|
void sharp_display_clear_screen(sharp_display_t * display);
|
|
void sharp_display_toggle_vcom(sharp_display_t * display);
|
|
|
|
void sharp_display_set_buffer(sharp_display_t * display, sharp_color_t color);
|
|
|
|
void sharp_display_draw_pixel(sharp_display_t * display, uint16_t x, uint16_t y, sharp_color_t color);
|
|
void sharp_display_draw_line(sharp_display_t * display, int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color);
|
|
void sharp_display_draw_rectangle(sharp_display_t * display, uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color);
|
|
void sharp_display_draw_filled_rectangle(sharp_display_t * display, uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color);
|
|
void sharp_display_draw_circle(sharp_display_t * display, uint16_t x, uint16_t y, uint16_t r, uint16_t color);
|
|
void sharp_display_draw_filled_circle(sharp_display_t * display, uint16_t x, uint16_t y, uint16_t r, uint16_t color);
|
|
void sharp_display_draw_triangle(sharp_display_t * display, uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color);
|
|
void sharp_display_draw_filled_triangle(sharp_display_t * display, uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color);
|
|
|
|
#endif
|