Library to control a Graphics TFT connected to 4-wire SPI - revised for the Raio RA8875 Display Controller.

Dependents:   FRDM_RA8875_mPaint RA8875_Demo RA8875_KeyPadDemo SignalGenerator ... more

Fork of SPI_TFT by Peter Drescher

See Components - RA8875 Based Display

Enhanced touch-screen support - where it previous supported both the Resistive Touch and Capacitive Touch based on the FT5206 Touch Controller, now it also has support for the GSL1680 Touch Controller.

Offline Help Manual (Windows chm)

/media/uploads/WiredHome/ra8875.zip.bin (download, rename to .zip and unzip)

Committer:
WiredHome
Date:
Fri Aug 17 01:29:06 2018 +0000
Revision:
154:ad2450fc3dc3
Parent:
125:7a0b70f56550
Child:
167:8aa3fb2a5a31
Documentation updates for using resistive touch.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
WiredHome 115:c9862fd0c689 1 /// Wrapping ChaN's TJpgDec into this graphics engine
WiredHome 115:c9862fd0c689 2 ///
WiredHome 115:c9862fd0c689 3
WiredHome 115:c9862fd0c689 4 #ifndef GraphicsDisplayJPEG_H
WiredHome 115:c9862fd0c689 5 #define GraphicsDisplayJPEG_H
WiredHome 115:c9862fd0c689 6
WiredHome 115:c9862fd0c689 7 /*----------------------------------------------------------------------------/
WiredHome 115:c9862fd0c689 8 / TJpgDec - Tiny JPEG Decompressor include file (C)ChaN, 2012
WiredHome 115:c9862fd0c689 9 /----------------------------------------------------------------------------*/
WiredHome 115:c9862fd0c689 10 #ifndef _TJPGDEC
WiredHome 115:c9862fd0c689 11 #define _TJPGDEC
WiredHome 115:c9862fd0c689 12
WiredHome 115:c9862fd0c689 13 /*---------------------------------------------------------------------------*/
WiredHome 115:c9862fd0c689 14 /* System Configurations */
WiredHome 115:c9862fd0c689 15
WiredHome 115:c9862fd0c689 16 #define JD_SZBUF 512 /* Size of stream input buffer */
WiredHome 115:c9862fd0c689 17 #define JD_FORMAT 1 /* Output pixel format 0:RGB888 (3 BYTE/pix), 1:RGB565 (1 WORD/pix) */
WiredHome 115:c9862fd0c689 18 #define JD_USE_SCALE 1 /* Use descaling feature for output */
WiredHome 115:c9862fd0c689 19 #define JD_TBLCLIP 1 /* Use table for saturation (might be a bit faster but increases 1K bytes of code size) */
WiredHome 115:c9862fd0c689 20
WiredHome 115:c9862fd0c689 21 /*---------------------------------------------------------------------------*/
WiredHome 115:c9862fd0c689 22
WiredHome 115:c9862fd0c689 23 #include "DisplayDefs.h"
WiredHome 115:c9862fd0c689 24
WiredHome 125:7a0b70f56550 25 /// Error code results for the jpeg engine
WiredHome 115:c9862fd0c689 26 typedef enum {
WiredHome 125:7a0b70f56550 27 JDR_OK = noerror, ///< 0: Succeeded
WiredHome 125:7a0b70f56550 28 JDR_INTR = external_abort, ///< 1: Interrupted by output function
WiredHome 125:7a0b70f56550 29 JDR_INP = bad_parameter, ///< 2: Device error or wrong termination of input stream
WiredHome 125:7a0b70f56550 30 JDR_MEM1 = not_enough_ram, ///< 3: Insufficient memory pool for the image
WiredHome 125:7a0b70f56550 31 JDR_MEM2 = not_enough_ram, ///< 4: Insufficient stream input buffer
WiredHome 125:7a0b70f56550 32 JDR_PAR = bad_parameter, ///< 5: Parameter error
WiredHome 125:7a0b70f56550 33 JDR_FMT1 = not_supported_format, ///< 6: Data format error (may be damaged data)
WiredHome 125:7a0b70f56550 34 JDR_FMT2 = not_supported_format, ///< 7: Right format but not supported
WiredHome 125:7a0b70f56550 35 JDR_FMT3 = not_supported_format ///< 8: Not supported JPEG standard
WiredHome 115:c9862fd0c689 36 } JRESULT;
WiredHome 115:c9862fd0c689 37
WiredHome 115:c9862fd0c689 38
WiredHome 115:c9862fd0c689 39
WiredHome 125:7a0b70f56550 40 /// Rectangular structure definition for the jpeg engine
WiredHome 115:c9862fd0c689 41 typedef struct {
WiredHome 125:7a0b70f56550 42 loc_t left; ///< left coord
WiredHome 125:7a0b70f56550 43 loc_t right; ///< right coord
WiredHome 125:7a0b70f56550 44 loc_t top; ///< top coord
WiredHome 125:7a0b70f56550 45 loc_t bottom; ///< bottom coord
WiredHome 115:c9862fd0c689 46 } JRECT;
WiredHome 115:c9862fd0c689 47
WiredHome 115:c9862fd0c689 48
WiredHome 125:7a0b70f56550 49 /// Decompressor object structure for the jpeg engine
WiredHome 125:7a0b70f56550 50 typedef struct JDEC JDEC;
WiredHome 115:c9862fd0c689 51
WiredHome 125:7a0b70f56550 52 /// Internal structure for the jpeg engine
WiredHome 115:c9862fd0c689 53 struct JDEC {
WiredHome 125:7a0b70f56550 54 uint16_t dctr; ///< Number of bytes available in the input buffer
WiredHome 125:7a0b70f56550 55 uint8_t * dptr; ///< Current data read ptr
WiredHome 125:7a0b70f56550 56 uint8_t * inbuf; ///< Bit stream input buffer
WiredHome 125:7a0b70f56550 57 uint8_t dmsk; ///< Current bit in the current read byte
WiredHome 125:7a0b70f56550 58 uint8_t scale; ///< Output scaling ratio
WiredHome 125:7a0b70f56550 59 uint8_t msx; ///< MCU size in unit of block (width, ...)
WiredHome 125:7a0b70f56550 60 uint8_t msy; ///< MCU size in unit of block (..., height)
WiredHome 125:7a0b70f56550 61 uint8_t qtid[3]; ///< Quantization table ID of each component
WiredHome 125:7a0b70f56550 62 int16_t dcv[3]; ///< Previous DC element of each component
WiredHome 125:7a0b70f56550 63 uint16_t nrst; ///< Restart inverval
WiredHome 125:7a0b70f56550 64 uint16_t width; ///< Size of the input image (pixel width, ...)
WiredHome 125:7a0b70f56550 65 uint16_t height; ///< Size of the input image (..., pixel height)
WiredHome 125:7a0b70f56550 66 uint8_t * huffbits[2][2]; ///< Huffman bit distribution tables [id][dcac]
WiredHome 125:7a0b70f56550 67 uint16_t * huffcode[2][2]; ///< Huffman code word tables [id][dcac]
WiredHome 125:7a0b70f56550 68 uint8_t * huffdata[2][2]; ///< Huffman decoded data tables [id][dcac]
WiredHome 125:7a0b70f56550 69 int32_t * qttbl[4]; ///< Dequaitizer tables [id]
WiredHome 125:7a0b70f56550 70 void * workbuf; ///< Working buffer for IDCT and RGB output
WiredHome 125:7a0b70f56550 71 uint8_t * mcubuf; ///< Working buffer for the MCU
WiredHome 125:7a0b70f56550 72 void * pool; ///< Pointer to available memory pool
WiredHome 125:7a0b70f56550 73 uint16_t sz_pool; ///< Size of momory pool (bytes available)
WiredHome 125:7a0b70f56550 74 uint16_t (*infunc)(JDEC * jd, uint8_t * buffer, uint16_t bufsize); ///< Pointer to jpeg stream input function
WiredHome 125:7a0b70f56550 75 void * device; ///< Pointer to I/O device identifiler for the session
WiredHome 115:c9862fd0c689 76 };
WiredHome 115:c9862fd0c689 77
WiredHome 115:c9862fd0c689 78
WiredHome 115:c9862fd0c689 79 #endif /* _TJPGDEC */
WiredHome 115:c9862fd0c689 80
WiredHome 115:c9862fd0c689 81 #endif // GraphicsDisplayJPEG_H