Animation demo with MIP8F_SPI_Ver60
Dependencies: mbed MIP8F_SPI_Ver60 MIP8f_FRDM_LineBuffer_sample MIP8f_FRDM_TransferMode_sample
Introduction
Animation Demo. Some Goldfish swin in water, from left to right, from bottom to top. Color and monochrome version
Only for LPM027M128x (400x240) ,JDI DIsplay.
Other information , please refer to https://os.mbed.com/teams/JapanDisplayInc/code/MIP8f_FRDM_sample/
Usage
Copy Setting File and Image to micro SD-CARD. you can NOT use same sample color images of OTHER VERSION SAMPLE.
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.
LPM027M128x (400x240) :/media/uploads/JDI_Mbed_Team/goldfish_400x240.bin
b) Insert micro SD-CARD to FRDM-K64F. c) Upload binary file to FRDM-K64F.and push Reset Button.
Other information
refer to Usage on https://os.mbed.com/teams/JapanDisplayInc/code/MIP8f_FRDM_sample/
this Sample Code (.bin)
/media/uploads/JDI_Mbed_Team/mip8f_frdm_animation_sample.k64f.bin
StateSw/StateSW.cpp
- Committer:
- JDI_Mbed_Team
- Date:
- 2018-09-04
- Revision:
- 0:33fe30a2b785
File content as of revision 0:33fe30a2b785:
#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; } }