101 lines
2.8 KiB
C
101 lines
2.8 KiB
C
|
#ifndef uint8
|
||
|
#define uint8 unsigned char
|
||
|
#endif
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
int cs, a0, rs;
|
||
|
uint8 width, height;
|
||
|
} lcd_t;
|
||
|
|
||
|
/*
|
||
|
* Initialize the display and create a data structure for it.
|
||
|
* The last initialized display is active.
|
||
|
*
|
||
|
* Parameters:
|
||
|
* spiSpeed - Speed of the SPI interface.
|
||
|
* cs - Chip selection pin.
|
||
|
* a0 - Data/Command pin.
|
||
|
* rs - Optional reset pin. If you do not use it, enter -1.
|
||
|
*
|
||
|
* Return: Pointer to the structure with display data.
|
||
|
*
|
||
|
*/
|
||
|
lcd_t *lcd_init(int spiSpeed, int cs, int a0, int rs);
|
||
|
|
||
|
/*
|
||
|
* Reset the specified display and clear the previously assigned memory.
|
||
|
*
|
||
|
* Parameters:
|
||
|
* display - Pointer to the structure with display data.
|
||
|
*
|
||
|
* Return: void
|
||
|
*/
|
||
|
void lcd_deinit(lcd_t *display);
|
||
|
|
||
|
/*
|
||
|
* Set the drawing area on the currently active display.
|
||
|
*
|
||
|
* Parameters:
|
||
|
* x1 - The X parameter of the first point.
|
||
|
* y1 - The Y parameter of the first point.
|
||
|
* x2 - The X parameter of the second point.
|
||
|
* y2 - The Y parameter of the second point.
|
||
|
*
|
||
|
* Return: Confirmation of the occurrence or non-occurrence of an error.
|
||
|
* 0 - The error did not occur; 1 - The error occurred.
|
||
|
*
|
||
|
*/
|
||
|
uint8 lcd_setWindow(uint8 x1, uint8 y1, uint8 x2, uint8 y2);
|
||
|
|
||
|
/*
|
||
|
* Draw one pixel on the currently active display.
|
||
|
* The color intensity scale for a normal pixel is from 0 to 255.
|
||
|
* The color intensity scale for the reduced pixel is from 0 to 15.
|
||
|
*
|
||
|
* Parameters:
|
||
|
* x - The X parameter of the pixel.
|
||
|
* y - The Y parameter of the pixel.
|
||
|
* r - The intensity of the red color.
|
||
|
* g - The intensity of the green color.
|
||
|
* b - The intensity of the blue color.
|
||
|
*
|
||
|
* Return: void
|
||
|
*/
|
||
|
void lcd_drawPx(uint8 x, uint8 y, uint8 r, uint8 g, uint8 b);
|
||
|
|
||
|
/*
|
||
|
* Draw a filled rectangle on the currently active display.
|
||
|
* The color intensity scale for a normal pixel is from 0 to 255.
|
||
|
* The color intensity scale for the reduced pixel is from 0 to 15.
|
||
|
*
|
||
|
* Parameters:
|
||
|
* x - Parameter X of the upper left corner of the rectangle.
|
||
|
* y - Parameter Y of the upper left corner of the rectangle.
|
||
|
* w - The width of the rectangle.
|
||
|
* h - The height of the rectangle.
|
||
|
* r - The intensity of the red color.
|
||
|
* g - The intensity of the green color.
|
||
|
* b - The intensity of the blue color.
|
||
|
*
|
||
|
* Return: void
|
||
|
*/
|
||
|
void lcd_fillRect(uint8 x, uint8 y, uint8 w, uint8 h, uint8 r, uint8 g, uint8 b);
|
||
|
|
||
|
/*
|
||
|
* Fill the entire screen with one color of the currently active display.
|
||
|
* The color intensity scale for a normal pixel is from 0 to 255.
|
||
|
* The color intensity scale for the reduced pixel is from 0 to 15.
|
||
|
*
|
||
|
* Parameters:
|
||
|
* r - The intensity of the red color.
|
||
|
* g - The intensity of the green color.
|
||
|
* b - The intensity of the blue color.
|
||
|
*
|
||
|
* Return: void
|
||
|
*/
|
||
|
void lcd_fillScreen(uint8 r, uint8 g, uint8 b);
|
||
|
|
||
|
void lcd_printChar(uint8 x, uint8 y, char c);
|
||
|
void lcd_printText(uint8 x, uint8 y, char* text);
|