summaryrefslogtreecommitdiff
path: root/bsp/Vango/v85xx/libraries/VangoV85xx_standard_peripheral/Include/lib_lcd.h
blob: 785330619f472d17dc92edad45c6aa38557595c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
/**
  ******************************************************************************
  * @file    lib_lcd.h 
  * @author  Application Team
  * @version V4.5.0
  * @date    2019-05-14
  * @brief   LCD library.
  ******************************************************************************
  * @attention
  *
  ******************************************************************************
  */
#ifndef __LIB_LCD_H
#define __LIB_LCD_H

#ifdef __cplusplus
 extern "C" {
#endif

#include "target.h"
   
/* LCD SEGx IO typedef */
typedef struct 
{
  __IO uint32_t    *GPIO;
       uint16_t     Pin;
}LCD_SEGIO;

/* LCD COMx IO typedef */
typedef struct 
{
  __IO uint32_t    *GPIO;
       uint16_t     Pin;
}LCD_COMIO;

typedef struct 
{
  uint32_t Type;
  uint32_t Drv;
  uint32_t FRQ;
  uint32_t SWPR;
  uint32_t FBMODE;
  uint32_t BKFILL;
} LCD_InitType;
//Type
#define LCD_TYPE_4COM   LCD_CTRL_TYPE_4COM
#define LCD_TYPE_6COM   LCD_CTRL_TYPE_6COM
#define LCD_TYPE_8COM   LCD_CTRL_TYPE_8COM
//DrivingRes
#define LCD_DRV_300     LCD_CTRL_DRV_300KOHM
#define LCD_DRV_600     LCD_CTRL_DRV_600KOHM
#define LCD_DRV_150     LCD_CTRL_DRV_150KOHM
#define LCD_DRV_200     LCD_CTRL_DRV_200KOHM
//ScanFRQ
#define LCD_FRQ_64H     LCD_CTRL_FRQ_64HZ
#define LCD_FRQ_128H    LCD_CTRL_FRQ_128HZ
#define LCD_FRQ_256H    LCD_CTRL_FRQ_256HZ
#define LCD_FRQ_512H    LCD_CTRL_FRQ_512HZ
//SwitchMode
#define LCD_FBMODE_BUFA         LCD_CTRL2_FBMODE_BUFA
#define LCD_FBMODE_BUFAB        LCD_CTRL2_FBMODE_BUFAANDBUFB
#define LCD_FBMODE_BUFABLANK    LCD_CTRL2_FBMODE_BUFAANDBLANK
//BlankFill
#define LCD_BKFILL_1       LCD_CTRL2_BKFILL
#define LCD_BKFILL_0       0 

//ComMode
#define LCD_COMMOD_4COM     1
#define LCD_COMMOD_6COM     3
#define LCD_COMMOD_8COM     7

//BiasSelection
#define LCD_BMODE_DIV3                     0
#define LCD_BMODE_DIV4       ANA_REG6_LCD_BMODE

//VLCDSelection
#define LCD_VLCD_0           0
#define LCD_VLCD_INC60MV     1
#define LCD_VLCD_INC120MV    2
#define LCD_VLCD_INC180MV    3
#define LCD_VLCD_INC240MV    4
#define LCD_VLCD_INC300MV    5
#define LCD_VLCD_DEC60MV     6
#define LCD_VLCD_DEC120MV    7
#define LCD_VLCD_DEC180MV    8
#define LCD_VLCD_DEC240MV    9
#define LCD_VLCD_DEC300MV    10
#define LCD_VLCD_DEC360MV    11
#define LCD_VLCD_DEC420MV    12
#define LCD_VLCD_DEC480MV    13
#define LCD_VLCD_DEC540MV    14
#define LCD_VLCD_DEC600MV    15

/* Private macros ------------------------------------------------------------*/
#define IS_LCD_TYPE(__TYPE__)  (((__TYPE__) == LCD_TYPE_4COM) ||\
                                ((__TYPE__) == LCD_TYPE_6COM) ||\
                                ((__TYPE__) == LCD_TYPE_8COM))

#define IS_LCD_DRV(__DRV__)  (((__DRV__) == LCD_DRV_300) ||\
                              ((__DRV__) == LCD_DRV_600) ||\
                              ((__DRV__) == LCD_DRV_150) ||\
                              ((__DRV__) == LCD_DRV_200)) 

#define IS_LCD_FRQ(__FRQ__)  (((__FRQ__) == LCD_FRQ_64H)  ||\
                              ((__FRQ__) == LCD_FRQ_128H) ||\
                              ((__FRQ__) == LCD_FRQ_256H) ||\
                              ((__FRQ__) == LCD_FRQ_512H))

#define IS_LCD_SWPR(__SWPR__)  ((__SWPR__) <= 0xFFUL)   

#define IS_LCD_FBMODE(__FBMODE__)  (((__FBMODE__) == LCD_FBMODE_BUFA)  ||\
                                    ((__FBMODE__) == LCD_FBMODE_BUFAB) ||\
                                    ((__FBMODE__) == LCD_FBMODE_BUFABLANK))                                   

#define IS_LCD_BKFILL(__BKFILL__)  (((__BKFILL__) == LCD_BKFILL_1) || ((__BKFILL__) == LCD_BKFILL_0))

#define IS_LCD_BMODE(__BMODE__)  (((__BMODE__) == LCD_BMODE_DIV3) ||\
                                  ((__BMODE__) == LCD_BMODE_DIV4))

#define IS_LCD_COMMOD(__COMMOD__)  (((__COMMOD__) == LCD_COMMOD_4COM) ||\
                                    ((__COMMOD__) == LCD_COMMOD_6COM) ||\
                                    ((__COMMOD__) == LCD_COMMOD_8COM))

#define IS_LCD_VLCD(__VLCD__)  (((__VLCD__) == LCD_VLCD_0)        ||\
                                ((__VLCD__) == LCD_VLCD_INC60MV)  ||\
                                ((__VLCD__) == LCD_VLCD_INC120MV)  ||\
                                ((__VLCD__) == LCD_VLCD_INC180MV) ||\
                                ((__VLCD__) == LCD_VLCD_INC240MV) ||\
                                ((__VLCD__) == LCD_VLCD_INC300MV) ||\
                                ((__VLCD__) == LCD_VLCD_DEC60MV) ||\
                                ((__VLCD__) == LCD_VLCD_DEC120MV) ||\
                                ((__VLCD__) == LCD_VLCD_DEC180MV) ||\
                                ((__VLCD__) == LCD_VLCD_DEC240MV) ||\
                                ((__VLCD__) == LCD_VLCD_DEC300MV) ||\
                                ((__VLCD__) == LCD_VLCD_DEC360MV) ||\
                                ((__VLCD__) == LCD_VLCD_DEC420MV) ||\
                                ((__VLCD__) == LCD_VLCD_DEC480MV) ||\
                                ((__VLCD__) == LCD_VLCD_DEC540MV) ||\
                                ((__VLCD__) == LCD_VLCD_DEC600MV))

/* Exported Functions ------------------------------------------------------- */
/* LCD Exported Functions Group1: 
                                  (De)Initialization -------------------------*/
void LCD_DeInit(void);
void LCD_StructInit(LCD_InitType *LCD_InitStruct);
void LCD_Init(LCD_InitType *InitStruct);
/* LCD Exported Functions Group1: 
                                  MISC Configuration -------------------------*/
void LCD_Cmd(uint32_t NewState);
void LCD_IOConfig(uint32_t ComMode, uint32_t SEGVal0, uint32_t SEGVal1, uint16_t SEGVal2, uint32_t NewState);
void LCD_SetSEG(uint32_t SegCtrl0, uint32_t SegCtrl1, uint16_t SegCtrl2);
void LCD_BiasModeConfig(uint32_t BiasSelection);
uint32_t LCD_VoltageConfig(uint32_t VLCDSelection);

#ifdef __cplusplus
}
#endif
     
#endif /* __LIB_LCD_H */

/*********************************** END OF FILE ******************************/