2025-12-01 22:55:42 +01:00

84 lines
3.6 KiB
C

/*******************************************************************
File: display.h
Date: 30-September-2020
Author: Peter Spindler
********************************************************************/
#ifndef _DISPLAY_H_
#define _DISPLAY_H_
#include "fonts.h"
typedef struct {
int16_t x;
int16_t y;
} DISPLAY_POINT_TypeDef;
typedef enum {
ALIGN_LEFT,
ALIGN_CENTER,
ALIGN_RIGHT
} DISPLAY_ALIGN_TypeDef;
#define LCD_ORIENTATION_PORTRAIT ((uint8_t)0x00)
#define LCD_ORIENTATION_LANDSCAPE ((uint8_t)0x01)
#define LCD_ORIENTATION_LANDSCAPE_ROT180 ((uint32_t)0x02)
#define LCD_COLOR_BLUE ((uint16_t)0x001F)
#define LCD_COLOR_GREEN ((uint16_t)0x07E0)
#define LCD_COLOR_RED ((uint16_t)0xF800)
#define LCD_COLOR_CYAN ((uint16_t)0x07FF)
#define LCD_COLOR_MAGENTA ((uint16_t)0xF81F)
#define LCD_COLOR_YELLOW ((uint16_t)0xFFE0)
#define LCD_COLOR_LIGHTBLUE ((uint16_t)0x841F)
#define LCD_COLOR_LIGHTGREEN ((uint16_t)0x87F0)
#define LCD_COLOR_LIGHTRED ((uint16_t)0xFC10)
#define LCD_COLOR_LIGHTMAGENTA ((uint16_t)0xFC1F)
#define LCD_COLOR_LIGHTYELLOW ((uint16_t)0xFFF0)
#define LCD_COLOR_DARKBLUE ((uint16_t)0x0010)
#define LCD_COLOR_DARKGREEN ((uint16_t)0x0400)
#define LCD_COLOR_DARKRED ((uint16_t)0x8000)
#define LCD_COLOR_DARKCYAN ((uint16_t)0x0410)
#define LCD_COLOR_DARKMAGENTA ((uint16_t)0x8010)
#define LCD_COLOR_DARKYELLOW ((uint16_t)0x8400)
#define LCD_COLOR_WHITE ((uint16_t)0xFFFF)
#define LCD_COLOR_LIGHTGRAY ((uint16_t)0xD69A)
#define LCD_COLOR_GRAY ((uint16_t)0x8410)
#define LCD_COLOR_DARKGRAY ((uint16_t)0x4208)
#define LCD_COLOR_BLACK ((uint16_t)0x0000)
#define LCD_COLOR_BROWN ((uint16_t)0xA145)
#define LCD_COLOR_ORANGE ((uint16_t)0xFD20)
void Display_WriteCommand( uint8_t Reg );
void Display_WriteData( uint16_t Value );
void Display_Init( void );
void Display_On( void );
void Display_Off( void );
uint16_t Display_GetHeight( void );
uint16_t Display_GetWidth( void );
void Display_Clear( uint16_t Color );
void Display_PrintString( uint16_t x, uint16_t y, uint16_t ColorFront, uint16_t ColorBack, FONT_TypeDef *Font, char *String );
void Display_Printf( uint16_t x, uint16_t y, uint16_t ColorFront, uint16_t ColorBack, FONT_TypeDef *Font, char *Format, ... );
uint16_t Display_GetStringWidth( FONT_TypeDef *Font, char *String );
uint16_t Display_GetFontCharHeight( FONT_TypeDef *Font );
void Display_DrawPixel( uint16_t x, uint16_t y, uint16_t Color );
void Display_DrawLine( uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t Color );
void Display_DrawRect( uint16_t x, uint16_t y, uint16_t Width, uint16_t Height, uint16_t Color );
void Display_FillRect( uint16_t x, uint16_t y, uint16_t Width, uint16_t Height, uint16_t Color );
void Display_DrawCircle( uint16_t x, uint16_t y, uint16_t Radius, uint16_t Color );
void Display_FillCircle( uint16_t x, uint16_t Ypos, uint16_t Radius, uint16_t Color );
void Display_DrawEllipse( uint16_t x, uint16_t y, uint16_t xRadius, uint16_t yRadius, uint16_t Color );
void Display_FillEllipse( uint16_t x, uint16_t y, uint16_t xRadius, uint16_t yRadius, uint16_t Color );
void Display_DrawPolygon( DISPLAY_POINT_TypeDef *Points, uint16_t PointCount, uint16_t Color );
void Display_FillTriangle( uint16_t x1, uint16_t x2, uint16_t x3, uint16_t y1, uint16_t y2, uint16_t y3, uint16_t Color );
void Display_FillPolygon( DISPLAY_POINT_TypeDef *Points, uint16_t PointCount, uint16_t Color );
void Display_Test( void );
#endif