working on gfx module added a few draw function gfx still wip added tamplate for test
39 lines
1.4 KiB
C
39 lines
1.4 KiB
C
#include "oled.h"
|
|
|
|
#ifndef _swap_int16_t
|
|
#define _swap_int16_t(a, b) \
|
|
{ \
|
|
int16_t t = a; \
|
|
a = b; \
|
|
b = t; \
|
|
}
|
|
#endif
|
|
|
|
#ifndef _diff
|
|
#define _diff(a, b) ((a > b) ? (a - b) : (b - a))
|
|
#endif
|
|
|
|
typedef enum
|
|
{
|
|
WHITE,
|
|
BLACK,
|
|
NORMAL,
|
|
INVERSE
|
|
} GFX_Color_t;
|
|
|
|
typedef enum
|
|
{
|
|
TOP_RIGHT = 1,
|
|
BOTTOM_RIGHT = 2,
|
|
BOTTOM_LEFT = 4,
|
|
TOP_LEFT = 8
|
|
} CIRC_Corners_t;
|
|
|
|
void writePixel(OLED_HandleTypeDef *hOled, uint8_t x, uint8_t y, GFX_Color_t color);
|
|
void writeBitmap(OLED_HandleTypeDef *hOled, const uint8_t *bitmap, uint8_t bitmap_width, uint8_t bitmap_height, int8_t pos_x, int8_t pos_y, GFX_Color_t color);
|
|
void writeSlashLine(OLED_HandleTypeDef *hOled, int16_t x0, int16_t y0, int16_t x1, int16_t y1, GFX_Color_t color);
|
|
void writeVerticalLine(OLED_HandleTypeDef *hOled, int16_t x, int16_t y, int16_t height, GFX_Color_t color);
|
|
void writeHorizontalLine(OLED_HandleTypeDef *hOled, int16_t x, int16_t y, int16_t width, GFX_Color_t color);
|
|
void writeRect(OLED_HandleTypeDef *hOled, int16_t x, int16_t y, int16_t width, int16_t height, GFX_Color_t color);
|
|
void writeCircle(OLED_HandleTypeDef *hOled, int16_t x0, int16_t y0, uint8_t radius, GFX_Color_t color);
|
|
void writeQuarterCircle(OLED_HandleTypeDef *hOled, int16_t x0, int16_t y0, uint8_t radius, CIRC_Corners_t corner, GFX_Color_t color); |