MIP8 Frame buffer sample. Color display

Dependencies:   MIP8F_SPI mbed

Fork of MIP8f_FRDM_sample by JapanDisplayInc

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).

/media/uploads/STakayama/mip8_imagesample_withboard1.jpg

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.

ex.) in case of LPM044M141x (640x480) : /media/uploads/JDI_Mbed_Team/sd_files141_sample.png

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.

/media/uploads/STakayama/mip_board_detail.jpg

FRDM Pin(Port) assign

/media/uploads/STakayama/frdm_port.jpg

Program Overview

/media/uploads/STakayama/sw_flow.jpg

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
Committer:
JDI_Mbed_Team
Date:
Mon Oct 22 04:55:37 2018 +0000
Revision:
4:55477a21ace1
Parent:
0:33fe30a2b785
Child:
1:e5796aa9f1aa
MIP8 Frame buffer sample

Who changed what in which revision?

UserRevisionLine numberNew contents of line
JDI_Mbed_Team 0:33fe30a2b785 1 /**
JDI_Mbed_Team 0:33fe30a2b785 2 * Copyright 2018 Japan Display Inc.
JDI_Mbed_Team 0:33fe30a2b785 3 *
JDI_Mbed_Team 0:33fe30a2b785 4 * Licensed under the Apache License, Version 2.0 (the "License");
JDI_Mbed_Team 0:33fe30a2b785 5 * you may not use this file except in compliance with the License.
JDI_Mbed_Team 0:33fe30a2b785 6 * You may obtain a copy of the License at
JDI_Mbed_Team 0:33fe30a2b785 7 *
JDI_Mbed_Team 0:33fe30a2b785 8 * http://www.apache.org/licenses/LICENSE-2.0
JDI_Mbed_Team 0:33fe30a2b785 9 *
JDI_Mbed_Team 0:33fe30a2b785 10 * Unless required by applicable law or agreed to in writing, software
JDI_Mbed_Team 0:33fe30a2b785 11 * distributed under the License is distributed on an "AS IS" BASIS,
JDI_Mbed_Team 0:33fe30a2b785 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
JDI_Mbed_Team 0:33fe30a2b785 13 * See the License for the specific language governing permissions and
JDI_Mbed_Team 0:33fe30a2b785 14 * limitations under the License.
JDI_Mbed_Team 0:33fe30a2b785 15 */
JDI_Mbed_Team 0:33fe30a2b785 16 #include "stdio.h"
JDI_Mbed_Team 0:33fe30a2b785 17 #include "string"
JDI_Mbed_Team 0:33fe30a2b785 18 #include "mbed.h"
JDI_Mbed_Team 0:33fe30a2b785 19 #include "MIP8F_SPI.h"
JDI_Mbed_Team 0:33fe30a2b785 20 #include "SDFileSystem.h"
JDI_Mbed_Team 0:33fe30a2b785 21 #include "StateSW.h"
JDI_Mbed_Team 0:33fe30a2b785 22 #include "TglSW.h"
JDI_Mbed_Team 0:33fe30a2b785 23
JDI_Mbed_Team 0:33fe30a2b785 24
JDI_Mbed_Team 0:33fe30a2b785 25 #include "Arial12x12.h"
JDI_Mbed_Team 0:33fe30a2b785 26 #include "Arial24x23.h"
JDI_Mbed_Team 0:33fe30a2b785 27 #include "Arial28x28.h"
JDI_Mbed_Team 0:33fe30a2b785 28 #include "font_big.h"
JDI_Mbed_Team 0:33fe30a2b785 29 //#include "Prototype29x28.h"
JDI_Mbed_Team 0:33fe30a2b785 30 //#include "Prototype70x86.h"
JDI_Mbed_Team 0:33fe30a2b785 31 //#include "HGP23x29.h"
JDI_Mbed_Team 0:33fe30a2b785 32 //#include "HGP15x19.h"
JDI_Mbed_Team 0:33fe30a2b785 33 //#include "symbol.h"
JDI_Mbed_Team 0:33fe30a2b785 34
JDI_Mbed_Team 0:33fe30a2b785 35 #define ON 1
JDI_Mbed_Team 0:33fe30a2b785 36 #define OFF 0
JDI_Mbed_Team 0:33fe30a2b785 37
JDI_Mbed_Team 0:33fe30a2b785 38
JDI_Mbed_Team 0:33fe30a2b785 39 //K64F
JDI_Mbed_Team 0:33fe30a2b785 40 SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // mosi,miso,sck,cs
JDI_Mbed_Team 0:33fe30a2b785 41 memLCD8 WD(PTD2,PTD3,PTD1,PTD0,PTC4,PTD3); //PTC12); // mosi,miso,clk,cs,disp,power
JDI_Mbed_Team 0:33fe30a2b785 42 PwmOut BK(PTC3);
JDI_Mbed_Team 0:33fe30a2b785 43 PwmOut COM60HZ(PTC10); //add 20161108
JDI_Mbed_Team 0:33fe30a2b785 44 DigitalOut COMSEL(PTA2,0); //add 20161108
JDI_Mbed_Team 0:33fe30a2b785 45
JDI_Mbed_Team 0:33fe30a2b785 46 DigitalOut BLCTRL(PTB10,0); //add 20171115
JDI_Mbed_Team 0:33fe30a2b785 47
JDI_Mbed_Team 0:33fe30a2b785 48 // SW2
JDI_Mbed_Team 0:33fe30a2b785 49 StateSW swPWMorOFF(SW2); //PTC6);
JDI_Mbed_Team 0:33fe30a2b785 50 InterruptIn PWMorOFF(SW2);
JDI_Mbed_Team 0:33fe30a2b785 51
JDI_Mbed_Team 0:33fe30a2b785 52 // SW3
JDI_Mbed_Team 0:33fe30a2b785 53 TglSW HaltSW(SW3); //PTA4);
JDI_Mbed_Team 0:33fe30a2b785 54 DigitalIn TexSW(SW3);
JDI_Mbed_Team 0:33fe30a2b785 55
JDI_Mbed_Team 0:33fe30a2b785 56
JDI_Mbed_Team 0:33fe30a2b785 57
JDI_Mbed_Team 0:33fe30a2b785 58 void SD2BUF(char *filepath);
JDI_Mbed_Team 0:33fe30a2b785 59 void ifOFFseq(void);
JDI_Mbed_Team 0:33fe30a2b785 60 void ifswPWM(void);
JDI_Mbed_Team 0:33fe30a2b785 61 void OffSequence(void);
JDI_Mbed_Team 0:33fe30a2b785 62 void DispAllDir(const char *fsrc);
JDI_Mbed_Team 0:33fe30a2b785 63 void ReadBmp(const char *fsrc, uint32_t FileNum);
JDI_Mbed_Team 0:33fe30a2b785 64 uint32_t CntFile(const char *fsrc);
JDI_Mbed_Team 0:33fe30a2b785 65 int ifMargeTXT = 0;
JDI_Mbed_Team 0:33fe30a2b785 66 int width = 400;
JDI_Mbed_Team 0:33fe30a2b785 67 int height= 240;
JDI_Mbed_Team 0:33fe30a2b785 68
JDI_Mbed_Team 0:33fe30a2b785 69 float BKduty = 0;
JDI_Mbed_Team 0:33fe30a2b785 70 float BKjudge = 0;
JDI_Mbed_Team 0:33fe30a2b785 71 //double BKduty = 0;
JDI_Mbed_Team 0:33fe30a2b785 72 float bk_timer = 1.0;
JDI_Mbed_Team 0:33fe30a2b785 73 int blduty = 0;
JDI_Mbed_Team 0:33fe30a2b785 74 int bloff = 0;
JDI_Mbed_Team 0:33fe30a2b785 75 int blctrl_sel = 1; //0:40mA, 1:160mA
JDI_Mbed_Team 0:33fe30a2b785 76
JDI_Mbed_Team 0:33fe30a2b785 77 int main() {
JDI_Mbed_Team 0:33fe30a2b785 78
JDI_Mbed_Team 0:33fe30a2b785 79 uint32_t filenum=0;
JDI_Mbed_Team 0:33fe30a2b785 80 char filepath[40];
JDI_Mbed_Team 0:33fe30a2b785 81
JDI_Mbed_Team 0:33fe30a2b785 82
JDI_Mbed_Team 0:33fe30a2b785 83 sd.disk_initialize();
JDI_Mbed_Team 0:33fe30a2b785 84 HaltSW.Enable(1);
JDI_Mbed_Team 0:33fe30a2b785 85
JDI_Mbed_Team 0:33fe30a2b785 86
JDI_Mbed_Team 0:33fe30a2b785 87 FILE *fp = fopen("/sd/settings2.txt", "rb"); //read binary
JDI_Mbed_Team 0:33fe30a2b785 88 if(fp != NULL) {
JDI_Mbed_Team 0:33fe30a2b785 89 fscanf(fp, "%d",&width); //width read
JDI_Mbed_Team 0:33fe30a2b785 90 fscanf(fp, "%d",&height); //height read
JDI_Mbed_Team 0:33fe30a2b785 91 fscanf(fp, "%d",&blctrl_sel);//blct_sel read //0:40mA, 1:160mA
JDI_Mbed_Team 0:33fe30a2b785 92 sprintf(filepath,"/sd/%dx%d",width,height); //DispAllDir("/sd/180x180") //file name write to filepath
JDI_Mbed_Team 0:33fe30a2b785 93 fclose(fp);
JDI_Mbed_Team 0:33fe30a2b785 94 } else {
JDI_Mbed_Team 0:33fe30a2b785 95 FILE *fp = fopen("/sd/settings.txt", "rb"); //read binary
JDI_Mbed_Team 0:33fe30a2b785 96 if(fp != NULL) {
JDI_Mbed_Team 0:33fe30a2b785 97 fscanf(fp, "%d",&width); //width read
JDI_Mbed_Team 0:33fe30a2b785 98 fscanf(fp, "%d",&height); //height read
JDI_Mbed_Team 0:33fe30a2b785 99 sprintf(filepath,"/sd/%dx%d",width,height); //DispAllDir("/sd/180x180") //file name write to filepath
JDI_Mbed_Team 0:33fe30a2b785 100 fclose(fp);
JDI_Mbed_Team 0:33fe30a2b785 101 } else{
JDI_Mbed_Team 0:33fe30a2b785 102 width =180;
JDI_Mbed_Team 0:33fe30a2b785 103 height=180;
JDI_Mbed_Team 0:33fe30a2b785 104 sprintf(filepath,"/sd/180x180"); //DispAllDir("/sd/180x180")
JDI_Mbed_Team 0:33fe30a2b785 105 }
JDI_Mbed_Team 0:33fe30a2b785 106 }
JDI_Mbed_Team 0:33fe30a2b785 107
JDI_Mbed_Team 0:33fe30a2b785 108 COMSEL.write(1); //
JDI_Mbed_Team 0:33fe30a2b785 109
JDI_Mbed_Team 0:33fe30a2b785 110 BLCTRL.write(blctrl_sel); //
JDI_Mbed_Team 0:33fe30a2b785 111
JDI_Mbed_Team 0:33fe30a2b785 112 WD.setWH(width,height); //input -> width, height
JDI_Mbed_Team 0:33fe30a2b785 113 WD.background(Black); //background = black
JDI_Mbed_Team 0:33fe30a2b785 114 WD.clsBUF(); //data initialize
JDI_Mbed_Team 0:33fe30a2b785 115 WD.writeDISP(); //picture write(black)
JDI_Mbed_Team 0:33fe30a2b785 116 WD.SwDisp(1); //disp on
JDI_Mbed_Team 0:33fe30a2b785 117
JDI_Mbed_Team 0:33fe30a2b785 118 // OffSW.fall(&OffSequence); // Renamed "OffSW" as "PWMorOFF" for BK PWM setting
JDI_Mbed_Team 0:33fe30a2b785 119 // SW settings for PWM or OFF
JDI_Mbed_Team 0:33fe30a2b785 120 PWMorOFF.fall(&ifswPWM); // Backlight //sw2 fall edge
JDI_Mbed_Team 0:33fe30a2b785 121 PWMorOFF.rise(&ifOFFseq); // OFF Sequence //sw2 rise edge
JDI_Mbed_Team 0:33fe30a2b785 122
JDI_Mbed_Team 0:33fe30a2b785 123 swPWMorOFF.Enable(8, 2, 1); //int ModeNum, int NoiseCancel, int OpenTime //????
JDI_Mbed_Team 0:33fe30a2b785 124 swPWMorOFF.IfCntClose(ON);
JDI_Mbed_Team 0:33fe30a2b785 125 swPWMorOFF.IfCntState(ON);
JDI_Mbed_Team 0:33fe30a2b785 126
JDI_Mbed_Team 0:33fe30a2b785 127 COM60HZ.period_ms(8); //add 20161108
JDI_Mbed_Team 0:33fe30a2b785 128 COM60HZ.write(0.5); //add 20161108
JDI_Mbed_Team 0:33fe30a2b785 129
JDI_Mbed_Team 0:33fe30a2b785 130 BK.period_ms(1); //1ms cycle 20161012
JDI_Mbed_Team 0:33fe30a2b785 131 BK.write(0); //low output 20160725 <- high output
JDI_Mbed_Team 0:33fe30a2b785 132
JDI_Mbed_Team 0:33fe30a2b785 133 while(1){ //BITMAPS
JDI_Mbed_Team 0:33fe30a2b785 134 filenum = CntFile(filepath); //file number read
JDI_Mbed_Team 0:33fe30a2b785 135 for(uint32_t i=0; i<filenum; i++){
JDI_Mbed_Team 0:33fe30a2b785 136 ReadBmp(filepath,i);
JDI_Mbed_Team 0:33fe30a2b785 137
JDI_Mbed_Team 0:33fe30a2b785 138 while(HaltSW.State()){ // VCOM invert when image is still
JDI_Mbed_Team 0:33fe30a2b785 139 // pol++;
JDI_Mbed_Team 0:33fe30a2b785 140 // WD.command( (pol << 6) & 0x40 );
JDI_Mbed_Team 0:33fe30a2b785 141 // wait(bk_timer); //1Hz
JDI_Mbed_Team 0:33fe30a2b785 142 }
JDI_Mbed_Team 0:33fe30a2b785 143 /*
JDI_Mbed_Team 0:33fe30a2b785 144 // Brink
JDI_Mbed_Team 0:33fe30a2b785 145 for(char j = 0; j < 8; j++){
JDI_Mbed_Team 0:33fe30a2b785 146 pol = j&0x01;
JDI_Mbed_Team 0:33fe30a2b785 147 EnterOrLeave = (j+1)&0x01;
JDI_Mbed_Team 0:33fe30a2b785 148 WD.command( (pol << 6) | (EnterOrLeave << 3) );
JDI_Mbed_Team 0:33fe30a2b785 149 wait(0.2);
JDI_Mbed_Team 0:33fe30a2b785 150 }
JDI_Mbed_Team 0:33fe30a2b785 151 */
JDI_Mbed_Team 0:33fe30a2b785 152 HaltSW.Clear();
JDI_Mbed_Team 0:33fe30a2b785 153 WD.writeDISP();
JDI_Mbed_Team 0:33fe30a2b785 154 wait(2);
JDI_Mbed_Team 0:33fe30a2b785 155 }
JDI_Mbed_Team 0:33fe30a2b785 156 }
JDI_Mbed_Team 0:33fe30a2b785 157 }
JDI_Mbed_Team 0:33fe30a2b785 158
JDI_Mbed_Team 0:33fe30a2b785 159
JDI_Mbed_Team 0:33fe30a2b785 160 void SD2BUF(char *filepath){
JDI_Mbed_Team 0:33fe30a2b785 161 char R8[1],G8[1],B8[1] ,DUMMY[1];
JDI_Mbed_Team 0:33fe30a2b785 162 int RGB;
JDI_Mbed_Team 0:33fe30a2b785 163 FILE *fp ;
JDI_Mbed_Team 0:33fe30a2b785 164
JDI_Mbed_Team 0:33fe30a2b785 165 fp = fopen(filepath, "rb");
JDI_Mbed_Team 0:33fe30a2b785 166 if(fp != NULL) {
JDI_Mbed_Team 0:33fe30a2b785 167 for(int i=0; i< 54 ; i++) fscanf(fp,"%c",DUMMY); // Discard Header 54bytes
JDI_Mbed_Team 0:33fe30a2b785 168 for(int y=height-1; y>=0; y--) {
JDI_Mbed_Team 0:33fe30a2b785 169 for(int x=0; x< width; x++) { //24bit color B 8bit -> G 8bit -> R 8bit
JDI_Mbed_Team 0:33fe30a2b785 170 fscanf(fp, "%c",B8);
JDI_Mbed_Team 0:33fe30a2b785 171 fscanf(fp, "%c",G8);
JDI_Mbed_Team 0:33fe30a2b785 172 fscanf(fp, "%c",R8);
JDI_Mbed_Team 0:33fe30a2b785 173
JDI_Mbed_Team 0:33fe30a2b785 174 RGB = RGB8(*R8,*G8,*B8); //6bit(8bit) MIP MASK 0000 1110
JDI_Mbed_Team 0:33fe30a2b785 175 WD.pixel(x,y,RGB);
JDI_Mbed_Team 0:33fe30a2b785 176 }
JDI_Mbed_Team 0:33fe30a2b785 177 if( y!=0) // The last data column doesn't need padding
JDI_Mbed_Team 0:33fe30a2b785 178 for(int x=(width*3)%4; (x%4 !=0); x++) fscanf(fp, "%c",DUMMY); // 4byte boundery for every column
JDI_Mbed_Team 0:33fe30a2b785 179 }
JDI_Mbed_Team 0:33fe30a2b785 180 }
JDI_Mbed_Team 0:33fe30a2b785 181 fclose(fp);
JDI_Mbed_Team 0:33fe30a2b785 182 }
JDI_Mbed_Team 0:33fe30a2b785 183
JDI_Mbed_Team 0:33fe30a2b785 184 void SDtex2BUF(char *filepath){
JDI_Mbed_Team 0:33fe30a2b785 185 int x,y,font,color;
JDI_Mbed_Team 0:33fe30a2b785 186 char text[40];
JDI_Mbed_Team 0:33fe30a2b785 187 int ifEOF;
JDI_Mbed_Team 0:33fe30a2b785 188 FILE *fp ;
JDI_Mbed_Team 0:33fe30a2b785 189
JDI_Mbed_Team 0:33fe30a2b785 190 fp = fopen(filepath, "r");
JDI_Mbed_Team 0:33fe30a2b785 191 if(fp != NULL) {
JDI_Mbed_Team 0:33fe30a2b785 192 // for(int i=0; i<3; i++){
JDI_Mbed_Team 0:33fe30a2b785 193 while(ifEOF != -1){
JDI_Mbed_Team 0:33fe30a2b785 194 ifEOF = fscanf(fp,"%d,%d,%d,%d,%[^,],",&x,&y,&font,&color,text);
JDI_Mbed_Team 0:33fe30a2b785 195 WD.locate(x,y);
JDI_Mbed_Team 0:33fe30a2b785 196 WD.foreground(color);
JDI_Mbed_Team 0:33fe30a2b785 197 if (font ==1) WD.set_font((unsigned char*) Arial12x12);
JDI_Mbed_Team 0:33fe30a2b785 198 else if (font ==2) WD.set_font((unsigned char*) Arial24x23);
JDI_Mbed_Team 0:33fe30a2b785 199 else if (font ==3) WD.set_font((unsigned char*) Arial28x28);
JDI_Mbed_Team 0:33fe30a2b785 200 else WD.set_font((unsigned char*) Neu42x35);
JDI_Mbed_Team 0:33fe30a2b785 201
JDI_Mbed_Team 0:33fe30a2b785 202 WD.printf("%s",text);
JDI_Mbed_Team 0:33fe30a2b785 203 }
JDI_Mbed_Team 0:33fe30a2b785 204 }
JDI_Mbed_Team 0:33fe30a2b785 205 fclose(fp);
JDI_Mbed_Team 0:33fe30a2b785 206 }
JDI_Mbed_Team 0:33fe30a2b785 207
JDI_Mbed_Team 0:33fe30a2b785 208 void DispAllDir(const char *fsrc)
JDI_Mbed_Team 0:33fe30a2b785 209 {
JDI_Mbed_Team 0:33fe30a2b785 210 DIR *d = opendir(fsrc);
JDI_Mbed_Team 0:33fe30a2b785 211 struct dirent *p;
JDI_Mbed_Team 0:33fe30a2b785 212 char filepath[40];
JDI_Mbed_Team 0:33fe30a2b785 213
JDI_Mbed_Team 0:33fe30a2b785 214 while ((p = readdir(d)) != NULL) {
JDI_Mbed_Team 0:33fe30a2b785 215 sprintf(filepath, "%s/%s",fsrc,p->d_name);
JDI_Mbed_Team 0:33fe30a2b785 216 SD2BUF(filepath);
JDI_Mbed_Team 0:33fe30a2b785 217 WD.writeDISP();
JDI_Mbed_Team 0:33fe30a2b785 218 }
JDI_Mbed_Team 0:33fe30a2b785 219 closedir(d);
JDI_Mbed_Team 0:33fe30a2b785 220 }
JDI_Mbed_Team 0:33fe30a2b785 221
JDI_Mbed_Team 0:33fe30a2b785 222 void ReadBmp(const char *fsrc, uint32_t FileNum)
JDI_Mbed_Team 0:33fe30a2b785 223 {
JDI_Mbed_Team 0:33fe30a2b785 224 DIR *d = opendir(fsrc);
JDI_Mbed_Team 0:33fe30a2b785 225 struct dirent *p;
JDI_Mbed_Team 0:33fe30a2b785 226 char filepath[40];
JDI_Mbed_Team 0:33fe30a2b785 227
JDI_Mbed_Team 0:33fe30a2b785 228 for(uint32_t i=0; i< FileNum; i++) readdir(d);
JDI_Mbed_Team 0:33fe30a2b785 229 if ((p = readdir(d)) != NULL) {
JDI_Mbed_Team 0:33fe30a2b785 230 sprintf(filepath, "%s/%s",fsrc,p->d_name);
JDI_Mbed_Team 0:33fe30a2b785 231 SD2BUF(filepath);
JDI_Mbed_Team 0:33fe30a2b785 232 if(ifMargeTXT){
JDI_Mbed_Team 0:33fe30a2b785 233 sprintf(filepath, "%s_txt/%s.txt",fsrc,p->d_name);
JDI_Mbed_Team 0:33fe30a2b785 234 SDtex2BUF(filepath);
JDI_Mbed_Team 0:33fe30a2b785 235 }
JDI_Mbed_Team 0:33fe30a2b785 236 }
JDI_Mbed_Team 0:33fe30a2b785 237 closedir(d);
JDI_Mbed_Team 0:33fe30a2b785 238 }
JDI_Mbed_Team 0:33fe30a2b785 239
JDI_Mbed_Team 0:33fe30a2b785 240 uint32_t CntFile(const char *fsrc)
JDI_Mbed_Team 0:33fe30a2b785 241 {
JDI_Mbed_Team 0:33fe30a2b785 242 DIR *d = opendir(fsrc);
JDI_Mbed_Team 0:33fe30a2b785 243 uint32_t counter = 0;
JDI_Mbed_Team 0:33fe30a2b785 244 while (readdir(d)!= NULL) counter++;
JDI_Mbed_Team 0:33fe30a2b785 245 closedir(d);
JDI_Mbed_Team 0:33fe30a2b785 246 return counter;
JDI_Mbed_Team 0:33fe30a2b785 247 }
JDI_Mbed_Team 0:33fe30a2b785 248
JDI_Mbed_Team 0:33fe30a2b785 249
JDI_Mbed_Team 0:33fe30a2b785 250 void OffSequence(void){
JDI_Mbed_Team 0:33fe30a2b785 251 BK.write(0); //add 20160712 17:00
JDI_Mbed_Team 0:33fe30a2b785 252 WD.background(Black);
JDI_Mbed_Team 0:33fe30a2b785 253 WD.clsBUF();
JDI_Mbed_Team 0:33fe30a2b785 254 WD.SwDisp(0);
JDI_Mbed_Team 0:33fe30a2b785 255 WD.writeDISP();
JDI_Mbed_Team 0:33fe30a2b785 256 WD.writeDISP();
JDI_Mbed_Team 0:33fe30a2b785 257 bloff = 1;
JDI_Mbed_Team 0:33fe30a2b785 258 }
JDI_Mbed_Team 0:33fe30a2b785 259
JDI_Mbed_Team 0:33fe30a2b785 260 void ifswPWM(void){
JDI_Mbed_Team 0:33fe30a2b785 261 if(bloff == 0){
JDI_Mbed_Team 0:33fe30a2b785 262 if(blduty >= 10){ //0
JDI_Mbed_Team 0:33fe30a2b785 263 blduty = 0; //10
JDI_Mbed_Team 0:33fe30a2b785 264 COMSEL.write(1); //
JDI_Mbed_Team 0:33fe30a2b785 265 }else{
JDI_Mbed_Team 0:33fe30a2b785 266 blduty += 1; //-=
JDI_Mbed_Team 0:33fe30a2b785 267 COMSEL.write(1); //
JDI_Mbed_Team 0:33fe30a2b785 268 }
JDI_Mbed_Team 0:33fe30a2b785 269 }else{
JDI_Mbed_Team 0:33fe30a2b785 270 blduty = 0;
JDI_Mbed_Team 0:33fe30a2b785 271 COMSEL.write(1); //
JDI_Mbed_Team 0:33fe30a2b785 272 }
JDI_Mbed_Team 0:33fe30a2b785 273 // BKduty = BKduty - 0.125;
JDI_Mbed_Team 0:33fe30a2b785 274 // BKduty -= 0.125;
JDI_Mbed_Team 0:33fe30a2b785 275 // if(BKduty <= 0) BKduty = 1;
JDI_Mbed_Team 0:33fe30a2b785 276 // BK.write(BKduty);
JDI_Mbed_Team 0:33fe30a2b785 277 BK.write(blduty*0.1); //
JDI_Mbed_Team 0:33fe30a2b785 278 if(blduty == 0){
JDI_Mbed_Team 0:33fe30a2b785 279 bk_timer = 1.0;
JDI_Mbed_Team 0:33fe30a2b785 280 }else{
JDI_Mbed_Team 0:33fe30a2b785 281 bk_timer = 0.008; //0.016 20160712
JDI_Mbed_Team 0:33fe30a2b785 282 }
JDI_Mbed_Team 0:33fe30a2b785 283 }
JDI_Mbed_Team 0:33fe30a2b785 284
JDI_Mbed_Team 0:33fe30a2b785 285 void ifOFFseq(void){
JDI_Mbed_Team 0:33fe30a2b785 286 if(swPWMorOFF.IfAtTime()){
JDI_Mbed_Team 0:33fe30a2b785 287 swPWMorOFF.IfCntClose(OFF);
JDI_Mbed_Team 0:33fe30a2b785 288 swPWMorOFF.IfCntState(OFF);
JDI_Mbed_Team 0:33fe30a2b785 289 OffSequence();
JDI_Mbed_Team 0:33fe30a2b785 290 }
JDI_Mbed_Team 0:33fe30a2b785 291 }
JDI_Mbed_Team 0:33fe30a2b785 292