Version 6.0. Animaiton demo.

Dependents:   MIP8f_FRDM_Animation_sample

MIP8F_SPI_Ver6.0

Ver6.0 Addtional function is animation code sample.

Committer:
JDI_Mbed_Team
Date:
Mon Nov 12 04:31:10 2018 +0000
Revision:
4:c41da26fe04a
Parent:
3:c67b96404016
Child:
6:4bfbc7e50577
MIP8F_SPI_Ver5.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JDI_Mbed_Team 0:b2d46804658c 1 /**
JDI_Mbed_Team 0:b2d46804658c 2 * @file MIP8F_SPI.h
JDI_Mbed_Team 3:c67b96404016 3 * @brief ver4.0 Library header file: Class for JDI MIP8 display
JDI_Mbed_Team 0:b2d46804658c 4 * @details
JDI_Mbed_Team 3:c67b96404016 5 * Ver4.0 Addtional function is Line buffer version
JDI_Mbed_Team 3:c67b96404016 6 * Ver3.0 Addtional function is font display
JDI_Mbed_Team 3:c67b96404016 7 * ver2.0 Addtional function is Monochome display by 1bit mode of SPI transfer.
JDI_Mbed_Team 3:c67b96404016 8 *
JDI_Mbed_Team 0:b2d46804658c 9 * <license>
JDI_Mbed_Team 0:b2d46804658c 10 * Copyright 2018 Japan Display Inc.
JDI_Mbed_Team 0:b2d46804658c 11 * Licensed under the Apache License, Version 2.0 (the "License");
JDI_Mbed_Team 0:b2d46804658c 12 * you may not use this file except in compliance with the License.
JDI_Mbed_Team 0:b2d46804658c 13 * You may obtain a copy of the License at
JDI_Mbed_Team 0:b2d46804658c 14 * http://www.apache.org/licenses/LICENSE-2.0
JDI_Mbed_Team 0:b2d46804658c 15 * Unless required by applicable law or agreed to in writing, software
JDI_Mbed_Team 0:b2d46804658c 16 * distributed under the License is distributed on an "AS IS" BASIS,
JDI_Mbed_Team 0:b2d46804658c 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
JDI_Mbed_Team 0:b2d46804658c 18 * See the License for the specific language governing permissions and
JDI_Mbed_Team 0:b2d46804658c 19 * limitations under the License.
JDI_Mbed_Team 0:b2d46804658c 20 */
JDI_Mbed_Team 0:b2d46804658c 21
JDI_Mbed_Team 0:b2d46804658c 22 #include "mbed.h"
JDI_Mbed_Team 0:b2d46804658c 23 /*****************************************
JDI_Mbed_Team 0:b2d46804658c 24 * Select compile option
JDI_Mbed_Team 0:b2d46804658c 25 ******************************************/
JDI_Mbed_Team 0:b2d46804658c 26 /**
JDI_Mbed_Team 3:c67b96404016 27 * @def LINEBUFF_MODE 0
JDI_Mbed_Team 3:c67b96404016 28 * @brief If you will use a Line Buffer mode,you must define LINEBUFF_MODE 1
JDI_Mbed_Team 0:b2d46804658c 29 */
JDI_Mbed_Team 4:c41da26fe04a 30 #define LINEBUFF_MODE 0
JDI_Mbed_Team 3:c67b96404016 31 /**
JDI_Mbed_Team 3:c67b96404016 32 * @def FRAMEBUFF_MODE 1
JDI_Mbed_Team 3:c67b96404016 33 * @brief If you will use a Frame Buffer mode,you must define LINEBUFF_MODE 1
JDI_Mbed_Team 3:c67b96404016 34 */
JDI_Mbed_Team 4:c41da26fe04a 35 #define FRAMEBUFF_MODE 1
JDI_Mbed_Team 0:b2d46804658c 36 /*****************************************
JDI_Mbed_Team 0:b2d46804658c 37 ******************************************/
JDI_Mbed_Team 3:c67b96404016 38 #if LINEBUFF_MODE
JDI_Mbed_Team 0:b2d46804658c 39 // 1dot = 4bit
JDI_Mbed_Team 0:b2d46804658c 40 #define LINE_SIZE 320 // 640 / 2
JDI_Mbed_Team 3:c67b96404016 41 #endif
JDI_Mbed_Team 3:c67b96404016 42 #if FRAMEBUFF_MODE
JDI_Mbed_Team 0:b2d46804658c 43 //#define FRAME_SIZE 9328 //1flame = 212dot X 88dot 1dot = 4bit
JDI_Mbed_Team 0:b2d46804658c 44 #define FRAME_SIZE 153600 // 153600 640 x 480 103600 400dot x 200dot 1dot = 4bit
JDI_Mbed_Team 0:b2d46804658c 45 #endif
JDI_Mbed_Team 0:b2d46804658c 46
JDI_Mbed_Team 0:b2d46804658c 47 // RGB color definitions /* R, G, B */
JDI_Mbed_Team 0:b2d46804658c 48 #define Black 0x00 /* 0 0 0 */
JDI_Mbed_Team 0:b2d46804658c 49 #define Blue 0x02 /* 0 0 1 */
JDI_Mbed_Team 0:b2d46804658c 50 #define Green 0x04 /* 0 1 0 */
JDI_Mbed_Team 0:b2d46804658c 51 #define Cyan 0x06 /* 0 1 1 */
JDI_Mbed_Team 0:b2d46804658c 52 #define Red 0x08 /* 1 0 0 */
JDI_Mbed_Team 0:b2d46804658c 53 #define Magenta 0x0a /* 1 0 1 */
JDI_Mbed_Team 0:b2d46804658c 54 #define Yellow 0x0c /* 1 1 0 */
JDI_Mbed_Team 0:b2d46804658c 55 #define White 0x0e /* 1 1 1 */
JDI_Mbed_Team 0:b2d46804658c 56
JDI_Mbed_Team 0:b2d46804658c 57 //transfer mode
JDI_Mbed_Team 0:b2d46804658c 58 #define TrBIT4 0x00
JDI_Mbed_Team 0:b2d46804658c 59 #define TrBIT3 0x01
JDI_Mbed_Team 0:b2d46804658c 60 #define TrBIT1 0x02
JDI_Mbed_Team 0:b2d46804658c 61
JDI_Mbed_Team 0:b2d46804658c 62 #define RGB8(r,g,b) (((r & 0x80) >>4) | ((g & 0x80)>>5) | ((b & 0x80)>>6) ) & 0x0E //24bit->4bit ??6bit(8bit)?? MIP MASK 0000 1110??
JDI_Mbed_Team 0:b2d46804658c 63
JDI_Mbed_Team 0:b2d46804658c 64 /**
JDI_Mbed_Team 0:b2d46804658c 65 * @brief display class for JDI MIP8(memory in pixel 8 color display)
JDI_Mbed_Team 0:b2d46804658c 66 * @details spi-transfer has 3 mode.
JDI_Mbed_Team 0:b2d46804658c 67 * 4bit mode is color display, this bit arrange is R,G,B,x. R,G,B = R,G,B subpixel bit. a x bit is Dummy.
JDI_Mbed_Team 0:b2d46804658c 68 * No ues(3bit mode is color display, this bit arrange is R,G,B. R,G,B = R,G,B subpixel bit. No bit is Dummy.)
JDI_Mbed_Team 0:b2d46804658c 69 * 1bit mode is monocrome display,high speed refresh mode. a only Green subpixel of bitmap data is transfered.
JDI_Mbed_Team 0:b2d46804658c 70 */
JDI_Mbed_Team 0:b2d46804658c 71 class memLCD8 : public Stream {
JDI_Mbed_Team 0:b2d46804658c 72 public:
JDI_Mbed_Team 0:b2d46804658c 73
JDI_Mbed_Team 3:c67b96404016 74 unsigned char* font;
JDI_Mbed_Team 3:c67b96404016 75
JDI_Mbed_Team 3:c67b96404016 76 /**
JDI_Mbed_Team 3:c67b96404016 77 * @brief Constructor : Set MPU pin names
JDI_Mbed_Team 3:c67b96404016 78 */
JDI_Mbed_Team 0:b2d46804658c 79 memLCD8(PinName mosi,PinName miso,PinName sclk,PinName cs,PinName disp,PinName power);
JDI_Mbed_Team 0:b2d46804658c 80 void locate(int x, int y);
JDI_Mbed_Team 3:c67b96404016 81 void set_font(unsigned char* f);
JDI_Mbed_Team 3:c67b96404016 82 void setWH(int width, int height);
JDI_Mbed_Team 3:c67b96404016 83 void SwDisp(bool ONorOFF);
JDI_Mbed_Team 0:b2d46804658c 84 void foreground(uint8_t colour);
JDI_Mbed_Team 0:b2d46804658c 85 void background(uint8_t colour);
JDI_Mbed_Team 0:b2d46804658c 86 void command(char command);
JDI_Mbed_Team 3:c67b96404016 87 //ver2.0
JDI_Mbed_Team 3:c67b96404016 88 void SetTransfermode(int transfermode);
JDI_Mbed_Team 3:c67b96404016 89
JDI_Mbed_Team 3:c67b96404016 90 //ver3.0
JDI_Mbed_Team 3:c67b96404016 91 void set_FixedFontWidth( unsigned char width );
JDI_Mbed_Team 3:c67b96404016 92 void set_ActualFontWidth(void);
JDI_Mbed_Team 3:c67b96404016 93 unsigned char get_Background(void);
JDI_Mbed_Team 3:c67b96404016 94
JDI_Mbed_Team 3:c67b96404016 95 #if LINEBUFF_MODE
JDI_Mbed_Team 3:c67b96404016 96 //ver3.0
JDI_Mbed_Team 3:c67b96404016 97 void pixel(int x, uint8_t color);
JDI_Mbed_Team 3:c67b96404016 98 void clsLINEBUF(void);
JDI_Mbed_Team 3:c67b96404016 99 int* GetPixelValueFromLineBuffer(int _x,uint8_t* buff);
JDI_Mbed_Team 3:c67b96404016 100 void writeDISPLinebuffer(void);
JDI_Mbed_Team 3:c67b96404016 101 void writeDISP(int line,int transfermode);
JDI_Mbed_Team 3:c67b96404016 102 #endif
JDI_Mbed_Team 3:c67b96404016 103
JDI_Mbed_Team 3:c67b96404016 104 #if FRAMEBUFF_MODE
JDI_Mbed_Team 3:c67b96404016 105 void pixel(int x, int y, uint8_t color);
JDI_Mbed_Team 3:c67b96404016 106 void writeDISP(void);
JDI_Mbed_Team 3:c67b96404016 107 void writeDISP(int transfermode);// transfermode : 4bit,3bit,1bit
JDI_Mbed_Team 3:c67b96404016 108 void writeDISP(int startline , int endline , int transfermode);// refresh display selected line
JDI_Mbed_Team 3:c67b96404016 109 void clsBUF(void);
JDI_Mbed_Team 0:b2d46804658c 110 void setmarge(bool ifMarge);
JDI_Mbed_Team 2:944f2968c19f 111 void character(int x, int y, int c);
JDI_Mbed_Team 0:b2d46804658c 112 void circle(int x0, int y0, int r, uint8_t color);
JDI_Mbed_Team 0:b2d46804658c 113 void fillcircle(int x0, int y0, int r, uint8_t color);
JDI_Mbed_Team 0:b2d46804658c 114 void hline(int x0, int x1, int y, uint8_t color);
JDI_Mbed_Team 0:b2d46804658c 115 void vline(int x, int y0, int y1, uint8_t color);
JDI_Mbed_Team 0:b2d46804658c 116 void line(int x0, int y0, int x1, int y1, uint8_t color);
JDI_Mbed_Team 0:b2d46804658c 117 void rect(int x0, int y0, int x1, int y1, uint8_t color);
JDI_Mbed_Team 0:b2d46804658c 118 void fillrect(int x0, int y0, int x1, int y1, uint8_t color);
JDI_Mbed_Team 0:b2d46804658c 119 void Symbol(unsigned int x, unsigned int y, unsigned char *symbol);
JDI_Mbed_Team 0:b2d46804658c 120 //ver2.0
JDI_Mbed_Team 0:b2d46804658c 121 int* GetPixelValue(int x , int y , uint8_t* buff);
JDI_Mbed_Team 2:944f2968c19f 122 //ver3.0
JDI_Mbed_Team 2:944f2968c19f 123 int textout(int x,int y,char* text);
JDI_Mbed_Team 2:944f2968c19f 124 void oblique(int x, int y, int c);
JDI_Mbed_Team 2:944f2968c19f 125 int obliqueout(int x,int y,char* text);
JDI_Mbed_Team 3:c67b96404016 126 #endif
JDI_Mbed_Team 2:944f2968c19f 127
JDI_Mbed_Team 0:b2d46804658c 128 protected:
JDI_Mbed_Team 0:b2d46804658c 129 virtual int _putc(int value);
JDI_Mbed_Team 0:b2d46804658c 130 virtual int _getc();
JDI_Mbed_Team 0:b2d46804658c 131
JDI_Mbed_Team 0:b2d46804658c 132 //! SPI class
JDI_Mbed_Team 0:b2d46804658c 133 SPI _spi;
JDI_Mbed_Team 0:b2d46804658c 134 //! pin class , SPI line
JDI_Mbed_Team 0:b2d46804658c 135 DigitalOut _cs;
JDI_Mbed_Team 0:b2d46804658c 136 //! display on/off
JDI_Mbed_Team 0:b2d46804658c 137 DigitalOut _disp;
JDI_Mbed_Team 0:b2d46804658c 138 //! diplay power on/off
JDI_Mbed_Team 0:b2d46804658c 139 DigitalOut _power;
JDI_Mbed_Team 0:b2d46804658c 140
JDI_Mbed_Team 0:b2d46804658c 141 //! foreground color of display
JDI_Mbed_Team 0:b2d46804658c 142 char _foreground;
JDI_Mbed_Team 0:b2d46804658c 143 //! background color of display
JDI_Mbed_Team 0:b2d46804658c 144 char _background;
JDI_Mbed_Team 0:b2d46804658c 145 bool _ifMarge;
JDI_Mbed_Team 0:b2d46804658c 146 char _if16;
JDI_Mbed_Team 2:944f2968c19f 147
JDI_Mbed_Team 2:944f2968c19f 148 //ver3.0
JDI_Mbed_Team 2:944f2968c19f 149 //! Fixed Font width size if _FixedFontWidth==0, use actual Font width size.
JDI_Mbed_Team 2:944f2968c19f 150 unsigned char _FixedFontWidth;
JDI_Mbed_Team 2:944f2968c19f 151
JDI_Mbed_Team 3:c67b96404016 152 #if FRAMEBUFF_MODE
JDI_Mbed_Team 0:b2d46804658c 153 //! frame buffer for display
JDI_Mbed_Team 0:b2d46804658c 154 uint8_t _dispBUF[FRAME_SIZE];
JDI_Mbed_Team 0:b2d46804658c 155 //uint8_t _LayerBUF[FRAME_SIZE];
JDI_Mbed_Team 3:c67b96404016 156 #endif
JDI_Mbed_Team 3:c67b96404016 157 #if LINEBUFF_MODE
JDI_Mbed_Team 0:b2d46804658c 158 //uint8_t *_pLineBuf;
JDI_Mbed_Team 0:b2d46804658c 159 //! line buffer for display
JDI_Mbed_Team 3:c67b96404016 160 uint8_t _dispLINEBUF[LINE_SIZE];
JDI_Mbed_Team 0:b2d46804658c 161 #endif
JDI_Mbed_Team 0:b2d46804658c 162
JDI_Mbed_Team 0:b2d46804658c 163 //! height,diplay pixel size
JDI_Mbed_Team 0:b2d46804658c 164 int _height;
JDI_Mbed_Team 0:b2d46804658c 165 //! width,diplay pixel size
JDI_Mbed_Team 0:b2d46804658c 166 int _width;
JDI_Mbed_Team 0:b2d46804658c 167 unsigned int char_x;
JDI_Mbed_Team 0:b2d46804658c 168 unsigned int char_y;
JDI_Mbed_Team 0:b2d46804658c 169
JDI_Mbed_Team 0:b2d46804658c 170 //ver2.0
JDI_Mbed_Team 0:b2d46804658c 171 //! SPI transfer mode command to MIP8 diplay
JDI_Mbed_Team 0:b2d46804658c 172 char TrModeCommand;
JDI_Mbed_Team 0:b2d46804658c 173 int TrAdd;
JDI_Mbed_Team 0:b2d46804658c 174 int TrValue[3];
JDI_Mbed_Team 0:b2d46804658c 175 int TrValNum;
JDI_Mbed_Team 0:b2d46804658c 176 };