for CountupNumber_sample3
MIP8F_SPI_Ver7.0
Ver7.0 Addtional function is SpeedMeter Sample for 4.4" MIP8F Display (Japan Display Inc)
Diff: MIP8F_SPI.h
- Revision:
- 0:b2d46804658c
- Child:
- 1:2b85e7edcc4e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/MIP8F_SPI.h Mon Oct 22 04:21:43 2018 +0000
@@ -0,0 +1,143 @@
+/**
+* @file MIP8F_SPI.h
+* @brief Library header file: Class for JDI MIP8 display
+* @details
+* <license>
+* Copyright 2018 Japan Display Inc.
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+#include "mbed.h"
+/*****************************************
+* Select compile option
+******************************************/
+/**
+* @def LINEBUFF_MODE
+* @ brief If you will use a Line Buffer mode,you must define LINEBUFF_MODE
+*/
+//#define LINEBUFF_MODE
+/*****************************************
+******************************************/
+#ifdef LINEBUFF_MODE
+ // 1dot = 4bit
+ #define LINE_SIZE 320 // 640 / 2
+#else
+ //#define FRAME_SIZE 9328 //1flame = 212dot X 88dot 1dot = 4bit
+ #define FRAME_SIZE 153600 // 153600 640 x 480 103600 400dot x 200dot 1dot = 4bit
+#endif
+
+// RGB color definitions /* R, G, B */
+#define Black 0x00 /* 0 0 0 */
+#define Blue 0x02 /* 0 0 1 */
+#define Green 0x04 /* 0 1 0 */
+#define Cyan 0x06 /* 0 1 1 */
+#define Red 0x08 /* 1 0 0 */
+#define Magenta 0x0a /* 1 0 1 */
+#define Yellow 0x0c /* 1 1 0 */
+#define White 0x0e /* 1 1 1 */
+
+//transfer mode
+#define TrBIT4 0x00
+#define TrBIT3 0x01
+#define TrBIT1 0x02
+
+#define RGB8(r,g,b) (((r & 0x80) >>4) | ((g & 0x80)>>5) | ((b & 0x80)>>6) ) & 0x0E //24bit->4bit ??6bit(8bit)?? MIP MASK 0000 1110??
+
+
+/**
+* @brief display class for JDI MIP8(memory in pixel 8 color display)
+* @details spi-transfer has 3 mode.
+* 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.
+* 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.)
+* 1bit mode is monocrome display,high speed refresh mode. a only Green subpixel of bitmap data is transfered.
+*/
+class memLCD8 : public Stream {
+public:
+
+/**
+* @brief Constructor : Set MPU pin names
+*/
+ memLCD8(PinName mosi,PinName miso,PinName sclk,PinName cs,PinName disp,PinName power);
+#ifndef LINEBUFF_MODE
+ void writeDISP(void);
+ void writeDISP(int transfermode); // transfermode : 4bit,3bit,1bit
+ void pixel(int x, int y, uint8_t color); //for framebuffer
+#else
+ void writeDISP(int line,int transfermode);// for linebuffer
+ void pixel(int x, uint8_t color); // for linebuffer
+#endif
+ void clsBUF(void);
+ void locate(int x, int y);
+ void foreground(uint8_t colour);
+ void background(uint8_t colour);
+ void command(char command);
+ void setmarge(bool ifMarge);
+ void setWH(int width, int height);
+ void SwDisp(bool ONorOFF);
+ void character(int x, int y, int c);
+// void LayerCopy(void);
+ void circle(int x0, int y0, int r, uint8_t color);
+ void fillcircle(int x0, int y0, int r, uint8_t color);
+ void hline(int x0, int x1, int y, uint8_t color);
+ void vline(int x, int y0, int y1, uint8_t color);
+ void line(int x0, int y0, int x1, int y1, uint8_t color);
+ void rect(int x0, int y0, int x1, int y1, uint8_t color);
+ void fillrect(int x0, int y0, int x1, int y1, uint8_t color);
+ void Symbol(unsigned int x, unsigned int y, unsigned char *symbol);
+ void set_font(unsigned char* f);
+ unsigned char* font;
+ //ver2.0
+ void SetTransfermode(int transfermode);
+ int* GetPixelValue(int x , int y , uint8_t* buff);
+protected:
+ virtual int _putc(int value);
+ virtual int _getc();
+
+ //! SPI class
+ SPI _spi;
+ //! pin class , SPI line
+ DigitalOut _cs;
+ //! display on/off
+ DigitalOut _disp;
+ //! diplay power on/off
+ DigitalOut _power;
+
+ //! foreground color of display
+ char _foreground;
+ //! background color of display
+ char _background;
+ bool _ifMarge;
+ char _if16;
+
+#ifndef LINEBUFF_MODE
+ //! frame buffer for display
+ uint8_t _dispBUF[FRAME_SIZE];
+ //uint8_t _LayerBUF[FRAME_SIZE];
+#else
+ //uint8_t *_pLineBuf;
+ //! line buffer for display
+ uint8_t _dispBUF[LINE_SIZE];
+#endif
+
+ //! height,diplay pixel size
+ int _height;
+ //! width,diplay pixel size
+ int _width;
+ unsigned int char_x;
+ unsigned int char_y;
+
+ //ver2.0
+ //! SPI transfer mode command to MIP8 diplay
+ char TrModeCommand;
+ int TrAdd;
+ int TrValue[3];
+ int TrValNum;
+};