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 Oct 22 04:21:43 2018 +0000
Revision:
0:b2d46804658c
Child:
1:2b85e7edcc4e
Version 2.0. MIP8 Frame Buffer Libraly. Addtional function is monochrome display by 1bit transfer mode .;  it is high speed refresh rate.

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