MIP8 Frame buffer sample. Color display
Fork of MIP8f_FRDM_sample by
Introduction
This Wiki page describes how to use the sample code to evaluate JDI_MIP. For JDI_MIP, please refer to the following Wiki page
https://os.mbed.com/teams/JapanDisplayInc/wiki/MIP-Reflective-type-Color-Display
https://os.mbed.com/teams/JapanDisplayInc/wiki/SPI_MIP8
Constitution
- FRDM-K64F(NXP)
- JDI_MIP Panel
- JDI_MIP Interface board.
Usage
1. Get MIP-panel, and JDI_MIP Interface Board, FRDM-K64F(NXP).
2. Import into compiler & Compile Program.
/media/uploads/JDI_Mbed_Team/anordertodownloadthesamplecodecompilerunonthetargetboard_u3lVTcw.pdf
3. Copy Setting File and Image to micro SD-CARD.
a) Download the following file corresponding to the target panel, and rename file identifier (.bin -> .zip), and unzip the file on micro SD Card's root directory.
- LPM013M126x (176x176) :/media/uploads/JDI_Mbed_Team/sdcard_176x176.bin
- LPM027M128x (400x240) :/media/uploads/JDI_Mbed_Team/sdcard_400x240.bin
- LPM044M141x (640x480) & TX11D200 : /media/uploads/JDI_Mbed_Team/sdcard_640x480.bin
ex.) in case of LPM044M141x (640x480) :
b) Insert micro SD-CARD to FRDM-K64F.
4. Upload binary file to FRDM-K64F.and push Reset Button.
Interface board
- Get from Switch Science
- Schematic/Parts list
- Gerber data(rename bin->zup, and unzip)
/media/uploads/STakayama/jdi_mip8_lcd_last.pdf
/media/uploads/STakayama/jdi-mip-pcb_partslist.pdf
/media/uploads/STakayama/jdi_mip8_lcd_last.bin
- Rename .bin to .zip,and unzip -> gerber data files.
FRDM Pin(Port) assign
Program Overview
Sample Code (.bin)
/media/uploads/JDI_Mbed_Team/mip8f_frdm_sample.k64f.bin
- MIP8f_FRDM_sample demo
Special Thanks
- ARM mbed team
- NXP for FRDM-K64F
- Switch Science for Interface Board
- Adafruit Industries for Adafruit_LEDBackpack.
- Neil Thiessen for SDFileSystem.
- MikroElektronika for GLCD Font
- Many developers
StateSw/StateSW.cpp
- Committer:
- JDI_Mbed_Team
- Date:
- 2018-10-22
- Revision:
- 4:55477a21ace1
- Parent:
- 0:33fe30a2b785
File content as of revision 4:55477a21ace1:
#include "StateSW.h" #include "mbed.h" StateSW::StateSW(PinName SWPin) : _SW(SWPin) {} void StateSW::Enable(int StateNum, int NoiseCancel, int OpenTime) { // _PRSCNT -- unit [times] ,_OPNCNT -- unit [s] _STATENUM = StateNum; _REPEAT = NoiseCancel; _OPNCNT = OpenTime; _preSW = 1; _PressCount= 0; _IfCntOpen = 0; _IfCntClose= 0; _IfCntState= 0; _IfAtTime = 0; _StateCounter.attach(this, &StateSW::_SeekPress, 0.05); // Ticker[s] } int StateSW::State(void){ return _State; } bool StateSW::IfAtTime(void){ return _IfAtTime; } void StateSW::IfCntState(bool IfCntState){ _IfCntState = IfCntState; } void StateSW::IfCntClose(bool IfCntClose){ _IfCntClose = IfCntClose; if(_IfCntClose == 0 ){ _Timer_SW.stop(); _Timer_SW.reset(); } } void StateSW::IfCntOpen(bool IfCntOpen){ _IfCntOpen = IfCntOpen; if(_IfCntOpen == 0 ){ _Timer_SW.stop(); _Timer_SW.reset(); } } /* void StateSW::Reset(void){ } bool StateSW::IfOnetime(void){ if(IfOnetime==1){ IfOnetime = 0; return 1; } else return 0; } */ void StateSW::_SeekPress(void) { // instead of InterruptIn -- for against noise if(_preSW != _SW) _PressCount++; else _PressCount=0; if(_PressCount > _REPEAT ) { if(_SW) StateSW::_rise(); else StateSW::_fall(); _preSW = _SW; _PressCount = 0; } if(_Timer_SW.read() > _OPNCNT){ _Timer_SW.stop(); _Timer_SW.reset(); _IfAtTime =1; } } void StateSW::_fall(void) { if(_IfCntOpen == 1 ){ _Timer_SW.stop(); _Timer_SW.reset(); } if(_IfCntClose== 1 ) _Timer_SW.start(); } void StateSW::_rise(void) { if(_IfCntOpen == 1 ) _Timer_SW.start(); if(_IfCntClose== 1 ){ _Timer_SW.stop(); _Timer_SW.reset(); } if(_IfCntState) { _State++; _State = _State%_STATENUM; // IfOnetime=1; } }