#ifndef VELOMETER_GRAPHICS_H #define VELOMETER_GRAPHICS_H #include "st7789.h" #define LCD_OFFSET_X 2 #define LCD_OFFSET_Y 34 #define LCD_WIDTH 320 #define LCD_HEIGHT 172 #define LETTER_SPACING 2 static inline void _set_pixel(uint16_t x, uint16_t y, uint16_t color) { st7789_set_cursor(x, y); st7789_put(color); } static inline void _draw_h_strip(uint16_t x, uint16_t y, uint16_t len, uint16_t color) { st7789_caset(x, x + len - 1); st7789_raset(y, y); while (len--) { st7789_put(color); } } static inline void _draw_v_strip(uint16_t x, uint16_t y, uint16_t len, uint16_t color) { st7789_caset(x, x); st7789_raset(y, y + len - 1); while (len--) { st7789_put(color); } } inline void lcd_set_pixel(uint16_t x, uint16_t y, uint16_t color) { x += LCD_OFFSET_X; y += LCD_OFFSET_Y; st7789_set_cursor(x, y); st7789_put(color); } inline void lcd_fill_rectangle(uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t color) { x += LCD_OFFSET_X; y += LCD_OFFSET_Y; st7789_caset(x, x + w - 1); st7789_raset(y, y + h - 1); for (uint16_t i = 0; i < w * h; ++i) { st7789_put(color); } } void lcd_draw_horizontal_digit_segment(uint16_t x, uint16_t y, uint16_t color); void lcd_draw_vertical_digit_segment(uint16_t x, uint16_t y, uint16_t color); void lcd_draw_horizontal_small_digit_segment(uint16_t x, uint16_t y, uint16_t color); void lcd_draw_vertical_small_digit_segment(uint16_t x, uint16_t y, uint16_t color); void lcd_draw_horizontal_xsmall_digit_segment(uint16_t x, uint16_t y, uint16_t color); void lcd_draw_vertical_xsmall_digit_segment(uint16_t x, uint16_t y, uint16_t color); void lcd_draw_digit(uint8_t digit, uint16_t x, uint16_t y, uint16_t color, uint16_t bgColor); void lcd_draw_small_digit(uint8_t digit, uint16_t x, uint16_t y, uint16_t color, uint16_t bgColor); void lcd_draw_xsmall_digit(uint8_t digit, uint16_t x, uint16_t y, uint16_t color, uint16_t bgColor); void lcd_draw_decimal_point(uint16_t x, uint16_t y, uint16_t color); void lcd_write_string(const char *string, uint16_t x, uint16_t y, uint16_t color, uint16_t bgColor); int lcd_string_width(const char *string); #endif