Hexiwear OLED Display Driver

Dependents:   Hexi_OLED_TextImage_Example Hexi_OLED_Text_Example Hexi_OLED_Image_Example security-console-app ... more

Committer:
khuang
Date:
Wed Aug 17 22:08:40 2016 +0000
Revision:
0:06f42dd3eab3
Child:
1:3b5be0ee5f0c
Initial Version of Hexiwear OLED Display Driver; APIs not finalized; SUBJECT TO CHANGE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
khuang 0:06f42dd3eab3 1 /**
khuang 0:06f42dd3eab3 2 * OLED-related data structures
khuang 0:06f42dd3eab3 3 * Project HEXIWEAR, 2015
khuang 0:06f42dd3eab3 4 */
khuang 0:06f42dd3eab3 5
khuang 0:06f42dd3eab3 6 #ifndef HG_OLED_TYPES
khuang 0:06f42dd3eab3 7 #define HG_OLED_TYPES
khuang 0:06f42dd3eab3 8
khuang 0:06f42dd3eab3 9 #include <stdint.h>
khuang 0:06f42dd3eab3 10
khuang 0:06f42dd3eab3 11 typedef enum
khuang 0:06f42dd3eab3 12 {
khuang 0:06f42dd3eab3 13 OLED_TRANSITION_NONE,
khuang 0:06f42dd3eab3 14 OLED_TRANSITION_TOP_DOWN,
khuang 0:06f42dd3eab3 15 OLED_TRANSITION_DOWN_TOP,
khuang 0:06f42dd3eab3 16 OLED_TRANSITION_LEFT_RIGHT,
khuang 0:06f42dd3eab3 17 OLED_TRANSITION_RIGHT_LEFT
khuang 0:06f42dd3eab3 18
khuang 0:06f42dd3eab3 19 } oled_transition_t;
khuang 0:06f42dd3eab3 20
khuang 0:06f42dd3eab3 21 typedef enum
khuang 0:06f42dd3eab3 22 {
khuang 0:06f42dd3eab3 23 OLED_STATUS_SUCCESS, // success
khuang 0:06f42dd3eab3 24 OLED_STATUS_ERROR, // fail
khuang 0:06f42dd3eab3 25 OLED_STATUS_PROTOCOL_ERROR, // SPI failure
khuang 0:06f42dd3eab3 26 OLED_STATUS_INIT_ERROR, // initialization error
khuang 0:06f42dd3eab3 27 OLED_STATUS_DEINIT_ERROR // deinitialization error
khuang 0:06f42dd3eab3 28
khuang 0:06f42dd3eab3 29 } oled_status_t;
khuang 0:06f42dd3eab3 30
khuang 0:06f42dd3eab3 31
khuang 0:06f42dd3eab3 32 #if 0
khuang 0:06f42dd3eab3 33 typedef struct
khuang 0:06f42dd3eab3 34 {
khuang 0:06f42dd3eab3 35 /**
khuang 0:06f42dd3eab3 36 * SPI relevant information
khuang 0:06f42dd3eab3 37 */
khuang 0:06f42dd3eab3 38 genericSpiHandle_t protocol;
khuang 0:06f42dd3eab3 39
khuang 0:06f42dd3eab3 40 } handleOLED_t;
khuang 0:06f42dd3eab3 41 #endif
khuang 0:06f42dd3eab3 42
khuang 0:06f42dd3eab3 43
khuang 0:06f42dd3eab3 44 typedef uint16_t* oled_pixel_t;
khuang 0:06f42dd3eab3 45
khuang 0:06f42dd3eab3 46 typedef struct
khuang 0:06f42dd3eab3 47 {
khuang 0:06f42dd3eab3 48 uint32_t DCpin;
khuang 0:06f42dd3eab3 49 uint32_t CSpin;
khuang 0:06f42dd3eab3 50 uint32_t RSTpin;
khuang 0:06f42dd3eab3 51 // uint32_t RWpin;
khuang 0:06f42dd3eab3 52 uint32_t ENpin;
khuang 0:06f42dd3eab3 53
khuang 0:06f42dd3eab3 54 } settingsOLED_t;
khuang 0:06f42dd3eab3 55
khuang 0:06f42dd3eab3 56 typedef enum
khuang 0:06f42dd3eab3 57 {
khuang 0:06f42dd3eab3 58 OLED_TEXT_ALIGN_NONE = 0,
khuang 0:06f42dd3eab3 59
khuang 0:06f42dd3eab3 60 OLED_TEXT_ALIGN_LEFT = 0x1,
khuang 0:06f42dd3eab3 61 OLED_TEXT_ALIGN_RIGHT = 0x2,
khuang 0:06f42dd3eab3 62 OLED_TEXT_ALIGN_CENTER = 0x3,
khuang 0:06f42dd3eab3 63
khuang 0:06f42dd3eab3 64 OLED_TEXT_VALIGN_TOP = 0x10,
khuang 0:06f42dd3eab3 65 OLED_TEXT_VALIGN_BOTTOM = 0x20,
khuang 0:06f42dd3eab3 66 OLED_TEXT_VALIGN_CENTER = 0x30
khuang 0:06f42dd3eab3 67
khuang 0:06f42dd3eab3 68 } oled_text_align_t;
khuang 0:06f42dd3eab3 69
khuang 0:06f42dd3eab3 70 typedef struct
khuang 0:06f42dd3eab3 71 {
khuang 0:06f42dd3eab3 72 uint8_t xCrd;
khuang 0:06f42dd3eab3 73 uint8_t yCrd;
khuang 0:06f42dd3eab3 74 uint8_t width;
khuang 0:06f42dd3eab3 75 uint8_t height;
khuang 0:06f42dd3eab3 76 oled_pixel_t areaBuffer;
khuang 0:06f42dd3eab3 77
khuang 0:06f42dd3eab3 78 } oled_dynamic_area_t;
khuang 0:06f42dd3eab3 79
khuang 0:06f42dd3eab3 80 typedef struct
khuang 0:06f42dd3eab3 81 {
khuang 0:06f42dd3eab3 82 const uint8_t* font;
khuang 0:06f42dd3eab3 83 uint16_t fontColor;
khuang 0:06f42dd3eab3 84 oled_text_align_t alignParam;
khuang 0:06f42dd3eab3 85 const uint8_t* background;
khuang 0:06f42dd3eab3 86
khuang 0:06f42dd3eab3 87 } oled_text_properties_t;
khuang 0:06f42dd3eab3 88
khuang 0:06f42dd3eab3 89
khuang 0:06f42dd3eab3 90 /** color chart */
khuang 0:06f42dd3eab3 91 typedef enum
khuang 0:06f42dd3eab3 92 {
khuang 0:06f42dd3eab3 93 COLOR_BLACK = 0x0000,
khuang 0:06f42dd3eab3 94 COLOR_BLUE_1 = 0x06FF,
khuang 0:06f42dd3eab3 95 COLOR_BLUE = 0x001F,
khuang 0:06f42dd3eab3 96 COLOR_RED = 0xF800,
khuang 0:06f42dd3eab3 97 COLOR_GREEN = 0x07E0,
khuang 0:06f42dd3eab3 98 COLOR_CYAN = 0x07FF,
khuang 0:06f42dd3eab3 99 COLOR_MAGENTA = 0xF81F,
khuang 0:06f42dd3eab3 100 COLOR_YELLOW = 0xFFE0,
khuang 0:06f42dd3eab3 101 COLOR_GRAY = 0x528A,
khuang 0:06f42dd3eab3 102 COLOR_WHITE = 0xFFFF
khuang 0:06f42dd3eab3 103
khuang 0:06f42dd3eab3 104 } Color_t;
khuang 0:06f42dd3eab3 105
khuang 0:06f42dd3eab3 106
khuang 0:06f42dd3eab3 107 #endif