for CountupNumber_sample3
MIP8F_SPI_Ver7.0
Ver7.0 Addtional function is SpeedMeter Sample for 4.4" MIP8F Display (Japan Display Inc)
MIP8F_SPI.h
- Committer:
- JDI_Mbed_Team
- Date:
- 2018-10-22
- Revision:
- 0:b2d46804658c
- Child:
- 1:2b85e7edcc4e
File content as of revision 0:b2d46804658c:
/**
* @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;
};