ipsdisplay  2.1.0.0
ipsdisplay.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** Copyright (C) 2020 MikroElektronika d.o.o.
3 ** Contact: https://www.mikroe.com/contact
4 **
5 ** Permission is hereby granted, free of charge, to any person obtaining a copy
6 ** of this software and associated documentation files (the "Software"), to deal
7 ** in the Software without restriction, including without limitation the rights
8 ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 ** copies of the Software, and to permit persons to whom the Software is
10 ** furnished to do so, subject to the following conditions:
11 ** The above copyright notice and this permission notice shall be
12 ** included in all copies or substantial portions of the Software.
13 **
14 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16 ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18 ** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
19 ** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20 ** USE OR OTHER DEALINGS IN THE SOFTWARE.
21 ****************************************************************************/
22 
28 #ifndef IPSDISPLAY_H
29 #define IPSDISPLAY_H
30 
31 #ifdef __cplusplus
32 extern "C"{
33 #endif
34 
35 #include "mikrosdk_version.h"
36 
37 #ifdef __GNUC__
38 #if mikroSDK_GET_VERSION < 20800ul
39 #include "rcu_delays.h"
40 #else
41 #include "delays.h"
42 #endif
43 #endif
44 
45 #include "drv_digital_out.h"
46 #include "drv_digital_in.h"
47 #include "drv_spi_master.h"
48 #include "spi_specifics.h"
49 #include "ipsdisplay_resources.h"
50 
71 #define IPSDISPLAY_CMD_NOP 0x00
72 #define IPSDISPLAY_CMD_SWRESET 0x01
73 #define IPSDISPLAY_CMD_RDDID 0x04
74 #define IPSDISPLAY_CMD_RDDST 0x09
75 #define IPSDISPLAY_CMD_RDDPM 0x0A
76 #define IPSDISPLAY_CMD_RDDMADCTL 0x0B
77 #define IPSDISPLAY_CMD_RDDCOLMOD 0x0C
78 #define IPSDISPLAY_CMD_RDDIM 0x0D
79 #define IPSDISPLAY_CMD_RDDSM 0x0E
80 #define IPSDISPLAY_CMD_RDDSDR 0x0F
81 #define IPSDISPLAY_CMD_SLPIN 0x10
82 #define IPSDISPLAY_CMD_SLPOUT 0x11
83 #define IPSDISPLAY_CMD_PTLON 0x12
84 #define IPSDISPLAY_CMD_NORON 0x13
85 #define IPSDISPLAY_CMD_INVOFF 0x20
86 #define IPSDISPLAY_CMD_INVON 0x21
87 #define IPSDISPLAY_CMD_GAMSET 0x26
88 #define IPSDISPLAY_CMD_DISPOFF 0x28
89 #define IPSDISPLAY_CMD_DISPON 0x29
90 #define IPSDISPLAY_CMD_CASET 0x2A
91 #define IPSDISPLAY_CMD_RASET 0x2B
92 #define IPSDISPLAY_CMD_RAMWR 0x2C
93 #define IPSDISPLAY_CMD_RAMRD 0x2E
94 #define IPSDISPLAY_CMD_PTLAR 0x30
95 #define IPSDISPLAY_CMD_VSCRDEF 0x33
96 #define IPSDISPLAY_CMD_TEOFF 0x34
97 #define IPSDISPLAY_CMD_TEON 0x35
98 #define IPSDISPLAY_CMD_MADCTL 0x36
99 #define IPSDISPLAY_CMD_VSCRSADD 0x37
100 #define IPSDISPLAY_CMD_IDMOFF 0x38
101 #define IPSDISPLAY_CMD_IDMON 0x39
102 #define IPSDISPLAY_CMD_COLMOD 0x3A
103 #define IPSDISPLAY_CMD_RAMWRC 0x3C
104 #define IPSDISPLAY_CMD_RAMRDC 0x3E
105 #define IPSDISPLAY_CMD_TESCAN 0x44
106 #define IPSDISPLAY_CMD_RDTESCAN 0x45
107 #define IPSDISPLAY_CMD_WRDISBV 0x51
108 #define IPSDISPLAY_CMD_RDDISBV 0x52
109 #define IPSDISPLAY_CMD_WRCTRLD 0x53
110 #define IPSDISPLAY_CMD_RDCTRLD 0x54
111 #define IPSDISPLAY_CMD_WRCACE 0x55
112 #define IPSDISPLAY_CMD_RDCABC 0x56
113 #define IPSDISPLAY_CMD_WRCABCMB 0x5E
114 #define IPSDISPLAY_CMD_RDCABCMB 0x5F
115 #define IPSDISPLAY_CMD_RDABCSDR 0x68
116 #define IPSDISPLAY_CMD_RDID1 0xDA
117 #define IPSDISPLAY_CMD_RDID2 0xDB
118 #define IPSDISPLAY_CMD_RDID3 0xDC
119 
124 #define IPSDISPLAY_CMD_RAMCTRL 0xB0
125 #define IPSDISPLAY_CMD_RGBCTRL 0xB1
126 #define IPSDISPLAY_CMD_PORCTRL 0xB2
127 #define IPSDISPLAY_CMD_FRCTRL1 0xB3
128 #define IPSDISPLAY_CMD_PARCTRL 0xB5
129 #define IPSDISPLAY_CMD_GCTRL 0xB7
130 #define IPSDISPLAY_CMD_GTADJ 0xB8
131 #define IPSDISPLAY_CMD_DGMEN 0xBA
132 #define IPSDISPLAY_CMD_VCOMS 0xBB
133 #define IPSDISPLAY_CMD_POWSAVE 0xBC
134 #define IPSDISPLAY_CMD_DLPOFFSAVE 0xBD
135 #define IPSDISPLAY_CMD_LCMCTRL 0xC0
136 #define IPSDISPLAY_CMD_IDSET 0xC1
137 #define IPSDISPLAY_CMD_VDVVRHEN 0xC2
138 #define IPSDISPLAY_CMD_VRHS 0xC3
139 #define IPSDISPLAY_CMD_VDVSET 0xC4
140 #define IPSDISPLAY_CMD_VCMOFSET 0xC5
141 #define IPSDISPLAY_CMD_FRCTR2 0xC6
142 #define IPSDISPLAY_CMD_CABCCTRL 0xC7
143 #define IPSDISPLAY_CMD_REGSEL1 0xC8
144 #define IPSDISPLAY_CMD_REGSEL2 0xCA
145 #define IPSDISPLAY_CMD_PWMFRSEL 0xCC
146 #define IPSDISPLAY_CMD_PWCTRL1 0xD0
147 #define IPSDISPLAY_CMD_VAPVANEN 0xD2
148 #define IPSDISPLAY_CMD_CMD2EN0 0xDF
149 #define IPSDISPLAY_CMD_CMD2EN1 0x5A
150 #define IPSDISPLAY_CMD_CMD2EN2 0x69
151 #define IPSDISPLAY_CMD_CMD2EN3 0x02
152 #define IPSDISPLAY_CMD_PVGAMCTRL 0xE0
153 #define IPSDISPLAY_CMD_NVGAMCTRL 0xE1
154 #define IPSDISPLAY_CMD_DGMLUTR 0xE2
155 #define IPSDISPLAY_CMD_DGMLUTB 0xE3
156 #define IPSDISPLAY_CMD_GATECTRL 0xE4
157 #define IPSDISPLAY_CMD_SPI2EN 0xE7
158 #define IPSDISPLAY_CMD_PWCTRL2 0xE8
159 #define IPSDISPLAY_CMD_EQCTRL 0xE9
160 #define IPSDISPLAY_CMD_PROMCTRL 0xEC
161 #define IPSDISPLAY_CMD_PROMEN 0xFA
162 #define IPSDISPLAY_CMD_NVMSET 0xFC
163 #define IPSDISPLAY_CMD_PROMACT 0xFE
164  // ipsdisplay_cmd
166 
181 #define IPSDISPLAY_MADCTL_DEFAULT 0x00
182 #define IPSDISPLAY_MADCTL_MY 0x80
183 #define IPSDISPLAY_MADCTL_MX 0x40
184 #define IPSDISPLAY_MADCTL_MV 0x20
185 #define IPSDISPLAY_MADCTL_ML 0x10
186 #define IPSDISPLAY_MADCTL_RGB 0x08
187 #define IPSDISPLAY_MADCTL_MH 0x04
188 
193 #define IPSDISPLAY_COLMOD_RGB_65K 0x50
194 #define IPSDISPLAY_COLMOD_RGB_262K 0x60
195 #define IPSDISPLAY_COLMOD_RGB_MASK 0x70
196 #define IPSDISPLAY_COLMOD_CTRL_12BIT_PIXEL 0x03
197 #define IPSDISPLAY_COLMOD_CTRL_16BIT_PIXEL 0x05
198 #define IPSDISPLAY_COLMOD_CTRL_18BIT_PIXEL 0x06
199 #define IPSDISPLAY_COLMOD_CTRL_16M_TRUNCATED 0x07
200 #define IPSDISPLAY_COLMOD_CTRL_MASK 0x07
201 
206 #define IPSDISPLAY_PORCTRL_0_BPA_DEFAULT 0x0C
207 #define IPSDISPLAY_PORCTRL_0_BPA_MASK 0x7F
208 #define IPSDISPLAY_PORCTRL_1_FPA_DEFAULT 0x0C
209 #define IPSDISPLAY_PORCTRL_1_FPA_MASK 0x7F
210 #define IPSDISPLAY_PORCTRL_2_PSEN_DISABLE 0x00
211 #define IPSDISPLAY_PORCTRL_2_PSEN_ENABLE 0x01
212 #define IPSDISPLAY_PORCTRL_3_BPB_DEFAULT 0x30
213 #define IPSDISPLAY_PORCTRL_3_BPB_MASK 0xF0
214 #define IPSDISPLAY_PORCTRL_3_FPB_DEFAULT 0x03
215 #define IPSDISPLAY_PORCTRL_3_FPB_MASK 0x0F
216 #define IPSDISPLAY_PORCTRL_4_BPC_DEFAULT 0x30
217 #define IPSDISPLAY_PORCTRL_4_BPC_MASK 0xF0
218 #define IPSDISPLAY_PORCTRL_4_FPC_DEFAULT 0x03
219 #define IPSDISPLAY_PORCTRL_4_FPC_MASK 0x0F
220 
225 #define IPSDISPLAY_GCTRL_VGHS_DEFAULT 0x30
226 #define IPSDISPLAY_GCTRL_VGHS_MASK 0x70
227 #define IPSDISPLAY_GCTRL_VGLS_DEFAULT 0x05
228 #define IPSDISPLAY_GCTRL_VGLS_MASK 0x07
229 
234 #define IPSDISPLAY_VCOMS_VCOM_DEFAULT 0x19
235 #define IPSDISPLAY_VCOMS_VCOM_MASK 0x3F
236 
241 #define IPSDISPLAY_LCMCTRL_XMY 0x40
242 #define IPSDISPLAY_LCMCTRL_XBGR 0x20
243 #define IPSDISPLAY_LCMCTRL_XINV 0x10
244 #define IPSDISPLAY_LCMCTRL_XMX 0x08
245 #define IPSDISPLAY_LCMCTRL_XMH 0x04
246 #define IPSDISPLAY_LCMCTRL_XMV 0x02
247 #define IPSDISPLAY_LCMCTRL_XGS 0x01
248 
253 #define IPSDISPLAY_VDVVRHEN_CMDEN_DISABLE 0x00
254 #define IPSDISPLAY_VDVVRHEN_CMDEN_ENABLE 0x01
255 
260 #define IPSDISPLAY_VRHS_DEFAULT 0x12
261 #define IPSDISPLAY_VRHS_MASK 0x3F
262 
267 #define IPSDISPLAY_VDVSET_DEFAULT 0x20
268 #define IPSDISPLAY_VDVSET_MASK 0x3F
269 
274 #define IPSDISPLAY_FRCTR2_NLA_DEFAULT 0x00
275 #define IPSDISPLAY_FRCTR2_NLA_MASK 0xE0
276 #define IPSDISPLAY_FRCTR2_RTNA_DEFAULT 0x0F
277 #define IPSDISPLAY_FRCTR2_RTNA_MASK 0x1F
278 
283 #define IPSDISPLAY_PWCTRL1_0_DEFAULT 0xA4
284 #define IPSDISPLAY_PWCTRL1_1_AVDD_DEFAULT 0x80
285 #define IPSDISPLAY_PWCTRL1_1_AVDD_MASK 0xC0
286 #define IPSDISPLAY_PWCTRL1_1_AVCL_DEFAULT 0x20
287 #define IPSDISPLAY_PWCTRL1_1_AVCL_MASK 0x30
288 #define IPSDISPLAY_PWCTRL1_1_VDS_DEFAULT 0x01
289 #define IPSDISPLAY_PWCTRL1_1_VDS_MASK 0x03
290 
295 #define IPSDISPLAY_PVGAMCTRL_0_V63P_DEFAULT 0xD0
296 #define IPSDISPLAY_PVGAMCTRL_0_V63P_MASK 0xF0
297 #define IPSDISPLAY_PVGAMCTRL_0_V0P_DEFAULT 0x00
298 #define IPSDISPLAY_PVGAMCTRL_0_V0P_MASK 0x0F
299 #define IPSDISPLAY_PVGAMCTRL_1_V1P_DEFAULT 0x04
300 #define IPSDISPLAY_PVGAMCTRL_1_V1P_MASK 0x3F
301 #define IPSDISPLAY_PVGAMCTRL_2_V2P_DEFAULT 0x0D
302 #define IPSDISPLAY_PVGAMCTRL_2_V2P_MASK 0x3F
303 #define IPSDISPLAY_PVGAMCTRL_3_V4P_DEFAULT 0x11
304 #define IPSDISPLAY_PVGAMCTRL_3_V4P_MASK 0x1F
305 #define IPSDISPLAY_PVGAMCTRL_4_V6P_DEFAULT 0x13
306 #define IPSDISPLAY_PVGAMCTRL_4_V6P_MASK 0x1F
307 #define IPSDISPLAY_PVGAMCTRL_5_J0P_DEFAULT 0x20
308 #define IPSDISPLAY_PVGAMCTRL_5_J0P_MASK 0x30
309 #define IPSDISPLAY_PVGAMCTRL_5_J13P_DEFAULT 0x0B
310 #define IPSDISPLAY_PVGAMCTRL_5_J13P_MASK 0x0F
311 #define IPSDISPLAY_PVGAMCTRL_6_V20P_DEFAULT 0x3F
312 #define IPSDISPLAY_PVGAMCTRL_6_V20P_MASK 0x7F
313 #define IPSDISPLAY_PVGAMCTRL_7_V36P_DEFAULT 0x50
314 #define IPSDISPLAY_PVGAMCTRL_7_V36P_MASK 0x70
315 #define IPSDISPLAY_PVGAMCTRL_7_V27P_DEFAULT 0x04
316 #define IPSDISPLAY_PVGAMCTRL_7_V27P_MASK 0x07
317 #define IPSDISPLAY_PVGAMCTRL_8_V43P_DEFAULT 0x4C
318 #define IPSDISPLAY_PVGAMCTRL_8_V43P_MASK 0x7F
319 #define IPSDISPLAY_PVGAMCTRL_9_J1P_DEFAULT 0x10
320 #define IPSDISPLAY_PVGAMCTRL_9_11P_MASK 0x30
321 #define IPSDISPLAY_PVGAMCTRL_9_V50P_DEFAULT 0x08
322 #define IPSDISPLAY_PVGAMCTRL_9_V50P_MASK 0x0F
323 #define IPSDISPLAY_PVGAMCTRL_10_V57P_DEFAULT 0x0D
324 #define IPSDISPLAY_PVGAMCTRL_10_V57P_MASK 0x1F
325 #define IPSDISPLAY_PVGAMCTRL_11_V59P_DEFAULT 0x0B
326 #define IPSDISPLAY_PVGAMCTRL_11_V59P_MASK 0x1F
327 #define IPSDISPLAY_PVGAMCTRL_12_V61P_DEFAULT 0x1F
328 #define IPSDISPLAY_PVGAMCTRL_12_V61P_MASK 0x3F
329 #define IPSDISPLAY_PVGAMCTRL_13_V62P_DEFAULT 0x23
330 #define IPSDISPLAY_PVGAMCTRL_13_V62P_MASK 0x3F
331 
336 #define IPSDISPLAY_NVGAMCTRL_0_V63N_DEFAULT 0xD0
337 #define IPSDISPLAY_NVGAMCTRL_0_V63N_MASK 0xF0
338 #define IPSDISPLAY_NVGAMCTRL_0_V0N_DEFAULT 0x00
339 #define IPSDISPLAY_NVGAMCTRL_0_V0N_MASK 0x0F
340 #define IPSDISPLAY_NVGAMCTRL_1_V1N_DEFAULT 0x04
341 #define IPSDISPLAY_NVGAMCTRL_1_V1N_MASK 0x3F
342 #define IPSDISPLAY_NVGAMCTRL_2_V2N_DEFAULT 0x0C
343 #define IPSDISPLAY_NVGAMCTRL_2_V2N_MASK 0x3F
344 #define IPSDISPLAY_NVGAMCTRL_3_V4N_DEFAULT 0x11
345 #define IPSDISPLAY_NVGAMCTRL_3_V4N_MASK 0x1F
346 #define IPSDISPLAY_NVGAMCTRL_4_V6N_DEFAULT 0x13
347 #define IPSDISPLAY_NVGAMCTRL_4_V6N_MASK 0x1F
348 #define IPSDISPLAY_NVGAMCTRL_5_J0N_DEFAULT 0x20
349 #define IPSDISPLAY_NVGAMCTRL_5_J0N_MASK 0x30
350 #define IPSDISPLAY_NVGAMCTRL_5_J13N_DEFAULT 0x0C
351 #define IPSDISPLAY_NVGAMCTRL_5_J13N_MASK 0x0F
352 #define IPSDISPLAY_NVGAMCTRL_6_V20N_DEFAULT 0x3F
353 #define IPSDISPLAY_NVGAMCTRL_6_V20N_MASK 0x7F
354 #define IPSDISPLAY_NVGAMCTRL_7_V36N_DEFAULT 0x40
355 #define IPSDISPLAY_NVGAMCTRL_7_V36N_MASK 0x70
356 #define IPSDISPLAY_NVGAMCTRL_7_V27N_DEFAULT 0x04
357 #define IPSDISPLAY_NVGAMCTRL_7_V27N_MASK 0x07
358 #define IPSDISPLAY_NVGAMCTRL_8_V43N_DEFAULT 0x51
359 #define IPSDISPLAY_NVGAMCTRL_8_V43N_MASK 0x7F
360 #define IPSDISPLAY_NVGAMCTRL_9_J1N_DEFAULT 0x20
361 #define IPSDISPLAY_NVGAMCTRL_9_11N_MASK 0x30
362 #define IPSDISPLAY_NVGAMCTRL_9_V50N_DEFAULT 0x0F
363 #define IPSDISPLAY_NVGAMCTRL_9_V50N_MASK 0x0F
364 #define IPSDISPLAY_NVGAMCTRL_10_V57N_DEFAULT 0x1F
365 #define IPSDISPLAY_NVGAMCTRL_10_V57N_MASK 0x1F
366 #define IPSDISPLAY_NVGAMCTRL_11_V59N_DEFAULT 0x1F
367 #define IPSDISPLAY_NVGAMCTRL_11_V59N_MASK 0x1F
368 #define IPSDISPLAY_NVGAMCTRL_12_V61N_DEFAULT 0x20
369 #define IPSDISPLAY_NVGAMCTRL_12_V61N_MASK 0x3F
370 #define IPSDISPLAY_NVGAMCTRL_13_V62N_DEFAULT 0x23
371 #define IPSDISPLAY_NVGAMCTRL_13_V62N_MASK 0x3F
372 
377 #define IPSDISPLAY_RES_WIDTH 135
378 #define IPSDISPLAY_RES_HEIGHT 240
379 #define IPSDISPLAY_NUM_PIXELS ( ( uint16_t ) IPSDISPLAY_RES_WIDTH * IPSDISPLAY_RES_HEIGHT )
380 
385 #define IPSDISPLAY_POS_WIDTH_MIN 0
386 #define IPSDISPLAY_POS_WIDTH_MAX ( IPSDISPLAY_RES_WIDTH - 1 )
387 #define IPSDISPLAY_POS_HEIGHT_MIN 0
388 #define IPSDISPLAY_POS_HEIGHT_MAX ( IPSDISPLAY_RES_HEIGHT - 1 )
389 #define IPSDISPLAY_POS_OFFSET_LEFT 52
390 #define IPSDISPLAY_POS_OFFSET_RIGHT 53
391 #define IPSDISPLAY_POS_OFFSET_UP 40
392 #define IPSDISPLAY_POS_OFFSET_DOWN 40
393 
398 #define IPSDISPLAY_FONT_WIDTH 6
399 #define IPSDISPLAY_FONT_HEIGHT 12
400 #define IPSDISPLAY_FONT_TEXT_SPACE 1
401 #define IPSDISPLAY_FONT_ASCII_OFFSET 32
402 #define IPSDISPLAY_FONT_WIDTH_MSB 0x80
403 
408 #define IPSDISPLAY_ROTATION_VERTICAL_0 0
409 #define IPSDISPLAY_ROTATION_VERTICAL_180 1
410 #define IPSDISPLAY_ROTATION_HORIZONTAL_0 2
411 #define IPSDISPLAY_ROTATION_HORIZONTAL_180 3
412 
417 #define IPSDISPLAY_COLOR_BLACK 0x0000
418 #define IPSDISPLAY_COLOR_WHITE 0xFFFF
419 #define IPSDISPLAY_COLOR_RED 0xF800
420 #define IPSDISPLAY_COLOR_LIME 0x07E0
421 #define IPSDISPLAY_COLOR_BLUE 0x001F
422 #define IPSDISPLAY_COLOR_YELLOW 0xFFE0
423 #define IPSDISPLAY_COLOR_CYAN 0x07FF
424 #define IPSDISPLAY_COLOR_MAGENTA 0xF81F
425 #define IPSDISPLAY_COLOR_SILVER 0xBDF7
426 #define IPSDISPLAY_COLOR_GRAY 0x8410
427 #define IPSDISPLAY_COLOR_MAROON 0x8000
428 #define IPSDISPLAY_COLOR_OLIVE 0x8400
429 #define IPSDISPLAY_COLOR_GREEN 0x0400
430 #define IPSDISPLAY_COLOR_PURPLE 0x8010
431 #define IPSDISPLAY_COLOR_TEAL 0x0410
432 #define IPSDISPLAY_COLOR_NAVY 0x0010
433 
442 #define IPSDISPLAY_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
443 #define IPSDISPLAY_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
444  // ipsdisplay_set
446 
461 #define IPSDISPLAY_MAP_MIKROBUS( cfg, mikrobus ) \
462  cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
463  cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
464  cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
465  cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
466  cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
467  cfg.dc = MIKROBUS( mikrobus, MIKROBUS_INT )
468  // ipsdisplay_map // ipsdisplay
471 
476 typedef struct
477 {
478  // Output pins
479  digital_out_t rst;
480  digital_out_t dc;
481  digital_out_t cs;
483  // Modules
484  spi_master_t spi;
486  uint8_t rotation;
488 } ipsdisplay_t;
489 
494 typedef struct
495 {
496  // Communication gpio pins
497  pin_name_t miso;
498  pin_name_t mosi;
499  pin_name_t sck;
500  pin_name_t cs;
502  // Additional gpio pins
503  pin_name_t rst;
504  pin_name_t dc;
506  // static variable
507  uint32_t spi_speed;
508  spi_master_mode_t spi_mode;
511 
516 typedef struct
517 {
518  uint16_t x;
519  uint16_t y;
522 
527 typedef enum
528 {
530  IPSDISPLAY_ERROR = -1
531 
533 
550 
565 
579 
591 err_t ipsdisplay_write_cmd ( ipsdisplay_t *ctx, uint8_t cmd );
592 
607 err_t ipsdisplay_write_cmd_par ( ipsdisplay_t *ctx, uint8_t cmd, uint8_t *data_in, uint8_t len );
608 
621 err_t ipsdisplay_write_data ( ipsdisplay_t *ctx, uint16_t *data_in, uint16_t len );
622 
632 
642 
652 
662 
672 
687 err_t ipsdisplay_set_rotation ( ipsdisplay_t *ctx, uint8_t rotation );
688 
704 
716 err_t ipsdisplay_fill_screen ( ipsdisplay_t *ctx, uint16_t color );
717 
733 err_t ipsdisplay_write_char ( ipsdisplay_t *ctx, ipsdisplay_point_t start_pt, uint8_t data_in, uint16_t color );
734 
750 err_t ipsdisplay_write_string ( ipsdisplay_t *ctx, ipsdisplay_point_t start_pt, uint8_t *data_in, uint16_t color );
751 
765 err_t ipsdisplay_draw_pixel ( ipsdisplay_t *ctx, ipsdisplay_point_t start_pt, uint16_t color );
766 
783  ipsdisplay_point_t end_pt, uint16_t color );
784 
801  ipsdisplay_point_t end_pt, uint16_t color );
802 
816 err_t ipsdisplay_draw_circle ( ipsdisplay_t *ctx, ipsdisplay_point_t center_pt, uint8_t radius, uint16_t color );
817 
833 err_t ipsdisplay_draw_picture ( ipsdisplay_t *ctx, uint8_t rotation, const uint16_t *image );
834 
835 #ifdef __cplusplus
836 }
837 #endif
838 #endif // IPSDISPLAY_H
839  // ipsdisplay
841 
842 // ------------------------------------------------------------------------ END
ipsdisplay_draw_circle
err_t ipsdisplay_draw_circle(ipsdisplay_t *ctx, ipsdisplay_point_t center_pt, uint8_t radius, uint16_t color)
IPS Display draw circle function.
ipsdisplay_t::rst
digital_out_t rst
Definition: ipsdisplay.h:479
ipsdisplay_resources.h
ipsdisplay_cfg_t::cs
pin_name_t cs
Definition: ipsdisplay.h:500
ipsdisplay_cfg_t::spi_speed
uint32_t spi_speed
Definition: ipsdisplay.h:507
ipsdisplay_cfg_t::rst
pin_name_t rst
Definition: ipsdisplay.h:503
ipsdisplay_point_t
IPS Display Click point coordinates object.
Definition: ipsdisplay.h:517
ipsdisplay_t::cs
digital_out_t cs
Definition: ipsdisplay.h:481
spi_specifics.h
This file contains SPI specific macros, functions, etc.
ipsdisplay_reset_device
void ipsdisplay_reset_device(ipsdisplay_t *ctx)
IPS Display reset device function.
ipsdisplay_write_cmd
err_t ipsdisplay_write_cmd(ipsdisplay_t *ctx, uint8_t cmd)
IPS Display write cmd function.
ipsdisplay_cfg_t
IPS Display Click configuration object.
Definition: ipsdisplay.h:495
ipsdisplay_draw_rectangle
err_t ipsdisplay_draw_rectangle(ipsdisplay_t *ctx, ipsdisplay_point_t start_pt, ipsdisplay_point_t end_pt, uint16_t color)
IPS Display draw rectangle function.
ipsdisplay_t
IPS Display Click context object.
Definition: ipsdisplay.h:477
ipsdisplay_t::rotation
uint8_t rotation
Definition: ipsdisplay.h:486
ipsdisplay_write_char
err_t ipsdisplay_write_char(ipsdisplay_t *ctx, ipsdisplay_point_t start_pt, uint8_t data_in, uint16_t color)
IPS Display write char function.
ipsdisplay_cfg_t::sck
pin_name_t sck
Definition: ipsdisplay.h:499
ipsdisplay_point_t::y
uint16_t y
Definition: ipsdisplay.h:519
ipsdisplay_draw_picture
err_t ipsdisplay_draw_picture(ipsdisplay_t *ctx, uint8_t rotation, const uint16_t *image)
IPS Display draw picture function.
ipsdisplay_init
err_t ipsdisplay_init(ipsdisplay_t *ctx, ipsdisplay_cfg_t *cfg)
IPS Display initialization function.
ipsdisplay_cfg_setup
void ipsdisplay_cfg_setup(ipsdisplay_cfg_t *cfg)
IPS Display configuration object setup function.
ipsdisplay_draw_line
err_t ipsdisplay_draw_line(ipsdisplay_t *ctx, ipsdisplay_point_t start_pt, ipsdisplay_point_t end_pt, uint16_t color)
IPS Display draw line function.
IPSDISPLAY_OK
@ IPSDISPLAY_OK
Definition: ipsdisplay.h:529
IPSDISPLAY_ERROR
@ IPSDISPLAY_ERROR
Definition: ipsdisplay.h:530
ipsdisplay_t::spi
spi_master_t spi
Definition: ipsdisplay.h:484
ipsdisplay_set_rotation
err_t ipsdisplay_set_rotation(ipsdisplay_t *ctx, uint8_t rotation)
IPS Display set rotation function.
ipsdisplay_disable_device
void ipsdisplay_disable_device(ipsdisplay_t *ctx)
IPS Display disable device function.
ipsdisplay_default_cfg
err_t ipsdisplay_default_cfg(ipsdisplay_t *ctx)
IPS Display default configuration function.
ipsdisplay_cfg_t::miso
pin_name_t miso
Definition: ipsdisplay.h:497
ipsdisplay_t::dc
digital_out_t dc
Definition: ipsdisplay.h:480
ipsdisplay_point_t::x
uint16_t x
Definition: ipsdisplay.h:518
ipsdisplay_cfg_t::mosi
pin_name_t mosi
Definition: ipsdisplay.h:498
ipsdisplay_write_string
err_t ipsdisplay_write_string(ipsdisplay_t *ctx, ipsdisplay_point_t start_pt, uint8_t *data_in, uint16_t color)
IPS Display write string function.
ipsdisplay_draw_pixel
err_t ipsdisplay_draw_pixel(ipsdisplay_t *ctx, ipsdisplay_point_t start_pt, uint16_t color)
IPS Display draw pixel function.
ipsdisplay_enable_device
void ipsdisplay_enable_device(ipsdisplay_t *ctx)
IPS Display enable device function.
ipsdisplay_cfg_t::spi_mode
spi_master_mode_t spi_mode
Definition: ipsdisplay.h:508
ipsdisplay_enter_data_mode
void ipsdisplay_enter_data_mode(ipsdisplay_t *ctx)
IPS Display enter data mode function.
ipsdisplay_enter_cmd_mode
void ipsdisplay_enter_cmd_mode(ipsdisplay_t *ctx)
IPS Display enter cmd mode function.
ipsdisplay_fill_screen
err_t ipsdisplay_fill_screen(ipsdisplay_t *ctx, uint16_t color)
IPS Display fill screen function.
ipsdisplay_write_cmd_par
err_t ipsdisplay_write_cmd_par(ipsdisplay_t *ctx, uint8_t cmd, uint8_t *data_in, uint8_t len)
IPS Display write cmd par function.
ipsdisplay_return_value_t
ipsdisplay_return_value_t
IPS Display Click return value data.
Definition: ipsdisplay.h:528
ipsdisplay_write_data
err_t ipsdisplay_write_data(ipsdisplay_t *ctx, uint16_t *data_in, uint16_t len)
IPS Display write data function.
ipsdisplay_set_pos
err_t ipsdisplay_set_pos(ipsdisplay_t *ctx, ipsdisplay_point_t start_pt, ipsdisplay_point_t end_pt)
IPS Display set pos function.
ipsdisplay_cfg_t::dc
pin_name_t dc
Definition: ipsdisplay.h:504