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:
Wed Oct 31 02:05:47 2018 +0000
Revision:
2:944f2968c19f
Parent:
1:2b85e7edcc4e
Child:
3:c67b96404016
Ver3.0 update

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 2:944f2968c19f 3 * @brief ver3.0 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 * @brief display class for JDI MIP8(memory in pixel 8 color display)
JDI_Mbed_Team 0:b2d46804658c 56 * @details spi-transfer has 3 mode.
JDI_Mbed_Team 0:b2d46804658c 57 * 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 58 * 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 59 * 1bit mode is monocrome display,high speed refresh mode. a only Green subpixel of bitmap data is transfered.
JDI_Mbed_Team 0:b2d46804658c 60 */
JDI_Mbed_Team 0:b2d46804658c 61 class memLCD8 : public Stream {
JDI_Mbed_Team 0:b2d46804658c 62 public:
JDI_Mbed_Team 0:b2d46804658c 63
JDI_Mbed_Team 0:b2d46804658c 64 /**
JDI_Mbed_Team 0:b2d46804658c 65 * @brief Constructor : Set MPU pin names
JDI_Mbed_Team 0:b2d46804658c 66 */
JDI_Mbed_Team 0:b2d46804658c 67 memLCD8(PinName mosi,PinName miso,PinName sclk,PinName cs,PinName disp,PinName power);
JDI_Mbed_Team 0:b2d46804658c 68 #ifndef LINEBUFF_MODE
JDI_Mbed_Team 0:b2d46804658c 69 void writeDISP(void);
JDI_Mbed_Team 0:b2d46804658c 70 void writeDISP(int transfermode); // transfermode : 4bit,3bit,1bit
JDI_Mbed_Team 2:944f2968c19f 71 void writeDISP(int startline , int endline , int transfermode); // refresh display selected line
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 2:944f2968c19f 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 2:944f2968c19f 96
JDI_Mbed_Team 0:b2d46804658c 97 unsigned char* font;
JDI_Mbed_Team 2:944f2968c19f 98
JDI_Mbed_Team 0:b2d46804658c 99 //ver2.0
JDI_Mbed_Team 0:b2d46804658c 100 void SetTransfermode(int transfermode);
JDI_Mbed_Team 0:b2d46804658c 101 int* GetPixelValue(int x , int y , uint8_t* buff);
JDI_Mbed_Team 2:944f2968c19f 102 //ver3.0
JDI_Mbed_Team 2:944f2968c19f 103 void set_FixedFontWidth( unsigned char width );
JDI_Mbed_Team 2:944f2968c19f 104 void set_ActualFontWidth(void);
JDI_Mbed_Team 2:944f2968c19f 105 unsigned char get_Background(void);
JDI_Mbed_Team 2:944f2968c19f 106 int textout(int x,int y,char* text);
JDI_Mbed_Team 2:944f2968c19f 107 void oblique(int x, int y, int c);
JDI_Mbed_Team 2:944f2968c19f 108 int obliqueout(int x,int y,char* text);
JDI_Mbed_Team 2:944f2968c19f 109
JDI_Mbed_Team 0:b2d46804658c 110 protected:
JDI_Mbed_Team 0:b2d46804658c 111 virtual int _putc(int value);
JDI_Mbed_Team 0:b2d46804658c 112 virtual int _getc();
JDI_Mbed_Team 0:b2d46804658c 113
JDI_Mbed_Team 0:b2d46804658c 114 //! SPI class
JDI_Mbed_Team 0:b2d46804658c 115 SPI _spi;
JDI_Mbed_Team 0:b2d46804658c 116 //! pin class , SPI line
JDI_Mbed_Team 0:b2d46804658c 117 DigitalOut _cs;
JDI_Mbed_Team 0:b2d46804658c 118 //! display on/off
JDI_Mbed_Team 0:b2d46804658c 119 DigitalOut _disp;
JDI_Mbed_Team 0:b2d46804658c 120 //! diplay power on/off
JDI_Mbed_Team 0:b2d46804658c 121 DigitalOut _power;
JDI_Mbed_Team 0:b2d46804658c 122
JDI_Mbed_Team 0:b2d46804658c 123 //! foreground color of display
JDI_Mbed_Team 0:b2d46804658c 124 char _foreground;
JDI_Mbed_Team 0:b2d46804658c 125 //! background color of display
JDI_Mbed_Team 0:b2d46804658c 126 char _background;
JDI_Mbed_Team 0:b2d46804658c 127 bool _ifMarge;
JDI_Mbed_Team 0:b2d46804658c 128 char _if16;
JDI_Mbed_Team 2:944f2968c19f 129
JDI_Mbed_Team 2:944f2968c19f 130 //ver3.0
JDI_Mbed_Team 2:944f2968c19f 131 //! Fixed Font width size if _FixedFontWidth==0, use actual Font width size.
JDI_Mbed_Team 2:944f2968c19f 132 unsigned char _FixedFontWidth;
JDI_Mbed_Team 2:944f2968c19f 133
JDI_Mbed_Team 0:b2d46804658c 134 #ifndef LINEBUFF_MODE
JDI_Mbed_Team 0:b2d46804658c 135 //! frame buffer for display
JDI_Mbed_Team 0:b2d46804658c 136 uint8_t _dispBUF[FRAME_SIZE];
JDI_Mbed_Team 0:b2d46804658c 137 //uint8_t _LayerBUF[FRAME_SIZE];
JDI_Mbed_Team 0:b2d46804658c 138 #else
JDI_Mbed_Team 0:b2d46804658c 139 //uint8_t *_pLineBuf;
JDI_Mbed_Team 0:b2d46804658c 140 //! line buffer for display
JDI_Mbed_Team 0:b2d46804658c 141 uint8_t _dispBUF[LINE_SIZE];
JDI_Mbed_Team 0:b2d46804658c 142 #endif
JDI_Mbed_Team 0:b2d46804658c 143
JDI_Mbed_Team 0:b2d46804658c 144 //! height,diplay pixel size
JDI_Mbed_Team 0:b2d46804658c 145 int _height;
JDI_Mbed_Team 0:b2d46804658c 146 //! width,diplay pixel size
JDI_Mbed_Team 0:b2d46804658c 147 int _width;
JDI_Mbed_Team 0:b2d46804658c 148 unsigned int char_x;
JDI_Mbed_Team 0:b2d46804658c 149 unsigned int char_y;
JDI_Mbed_Team 0:b2d46804658c 150
JDI_Mbed_Team 0:b2d46804658c 151 //ver2.0
JDI_Mbed_Team 0:b2d46804658c 152 //! SPI transfer mode command to MIP8 diplay
JDI_Mbed_Team 0:b2d46804658c 153 char TrModeCommand;
JDI_Mbed_Team 0:b2d46804658c 154 int TrAdd;
JDI_Mbed_Team 0:b2d46804658c 155 int TrValue[3];
JDI_Mbed_Team 0:b2d46804658c 156 int TrValNum;
JDI_Mbed_Team 0:b2d46804658c 157 };