Shinichi Takayama / Mbed OS MIP8f_ThunderBoard2
Revision:
6:aaba08f73be5
Parent:
5:79dc134e6033
Child:
7:f1496e0c3596
--- a/main.cpp	Wed May 16 09:23:41 2018 +0000
+++ b/main.cpp	Thu May 17 03:35:39 2018 +0000
@@ -6,26 +6,32 @@
 #include "data.h"
 #include "HGP23x29.h"
 #include "HGP15x19.h"
-//Si1133 uv_sensor(PC4, PC5);
+//Si1133 uv_sensor(PC4 , PC5 ); //<- 内部(SDA/SCL)
+//Si1133 uv_sensor(PC10, PC11); //<- 外部(SDA/SCL)
 
 WatchDisp WD(PK0,PK2,PF7,PA5); //PTC12);  // mosi,miso,clk,cs,disp,power(EXTMODE)
-DigitalOut _lcd_disp(PA8); // DISP
-DigitalOut _lcd_extmod(PF6);  // EXTMODE
-//_lcd_reset(reset),_lcd_extcom(extcom)
+DigitalOut _lcd_disp(PA8);    // DISP
+DigitalOut _lcd_extmod(PF6);  // EXTMODE L=SERIAL, H=EXTCOMIN Signal
+DigitalOut _lcd_extcom(PA9);  // Togle
 
-//InterruptIn UV_INT(PA6);                        // YV Interrupt
+DigitalOut _pk1(PK1,1);  // QSPI Flash CS Disable
+//DigitalOut _mosi(PK0,1);
+//DigitalOut _clk(PF7,1);
+//DigitalOut _cs(PA5,1);
+
+InterruptIn UV_INT(PA6);                        // YV Interrupt
 //DigitalIn   PushSW0(PD14);                         // Switch
 //DigitalIn   PushSW1(PD15);                         // Switch
 
-DigitalOut ledPJ14(PJ14);
-DigitalOut led1(LED1);
-DigitalOut ledPI0(PI0);
-DigitalOut ledPI1(PI1);
-DigitalOut ledPI2(PI2);
-DigitalOut ledPI3(PI3);
-DigitalOut ledR(PD11);
-DigitalOut ledG(PD12);
-DigitalOut ledB(PD13);
+//DigitalOut ledPJ14(PJ14);
+//DigitalOut led1(LED1);
+//DigitalOut ledPI0(PI0);
+//DigitalOut ledPI1(PI1);
+//DigitalOut ledPI2(PI2);
+//DigitalOut ledPI3(PI3);
+//DigitalOut ledR(PD11);
+//DigitalOut ledG(PD12);
+//DigitalOut ledB(PD13);
 
 uint8_t ccolor_table[] = {Black,Gray,Blue   ,LightBlue   ,Green ,LightGreen ,Cyan     ,LightCyan,
                           Red  ,pink,Magenta,LightMagenta,Yellow,LightYellow,LightGray,White};
@@ -39,19 +45,18 @@
     // Power On Sequece
 //    _lcd_reset  = 0;
 //    _lcd_reset  = 1;
-    _lcd_extmod = 1;
     _lcd_extmod = 0;
-    _lcd_disp = 1;            // hontoha 0
+    _lcd_disp = 0;            // hontoha 0
 //    command(0);
 
-    WD.setWH(width,height);     // Default   X/Y
+    WD.setWH(width,height);     // Default   X/Y-00
     bool  if16 = 1;
     WD.set16col(if16);                 // 0= RGB, 1=RGBW
     WD.setmarge(1);
     WD.background(White);
     WD.foreground(LightGreen);
     WD.clsBUF();
-    WD.fillrect(i*(width/16), height/2+1, (i+1)*(width/16)-1, height  , ccolor_table[15-i]);
+    //WD.fillrect(i*(width/16), height/2+1, (i+1)*(width/16)-1, height  , ccolor_table[15-i]);
     
     WD.writeDISP();         
 
@@ -69,8 +74,8 @@
         WD.locate(10,150);   WD.printf("Hello world"); 
     }
     WD.writeDISP();               
-
     _lcd_disp = 1;
+    _lcd_extmod = 1;   // 1=Pin,0=Serial
     return 0;
 /**/    
 }
@@ -80,255 +85,34 @@
     ;
 }
 
-DigitalOut _pk1(PK1,1);
-
-DigitalOut _mosi(PK0,1);
-DigitalOut _clk(PF7,1);
-DigitalOut _cs(PA5,1);
 
 int main() {
     _pk1=1;
-    printf("Start Program!\n");
-    ledPJ14 =1;
-    ledPI0 =1; ledPI1 =1; ledPI2 =1; ledPI3 =1;
-//    UV_INT.fall(&uv_init_proc);
+    //printf("Start Program!\n");
+    //ledPJ14 =1;
+    //ledPI0 =1; ledPI1 =1; ledPI2 =1; ledPI3 =1;
+    UV_INT.fall(&uv_init_proc);
     test_lcd();
-//  if (!uv_sensor.open()) printf("Device Error detected!\n");
-    int i;
+//    if (!uv_sensor.open()) printf("Device Error detected!\n");
+    int count_10ms=0;
     while(1){
-       i++;
-       //_clk = (i%2==0)?(1):(0);
-       //_mosi= (i%8==0)?(1):(0);
-       //_cs  = (i%16==0)?(1):(0);
-
-       led1 = (i%8==0)?(1):(0);
-            printf("aaa %d\n\r",i); 
-       //     float light_level = (float)uv_sensor.get_light_level(); 
-       //     printf("Lux = %.3f\n", (float)light_level);
-       //     //Print the current UV index
-       //     float uv_index = (float)uv_sensor.get_uv_index();
-       //     printf("UV index = %.3f\n", (float) uv_index);
-       //Sleep for 0.5 seconds
         wait(0.01);
+        count_10ms++;
+        if (count_10ms%50==0){
+            _lcd_extcom = !_lcd_extcom;
+        }
+        if (count_10ms%100==0){  // 1Hz
+            //float light_level = (float)uv_sensor.get_light_level(); 
+            //printf("Lux = %.3f\n", (float)light_level);
+            ////Print the current UV index
+            //float uv_index = (float)uv_sensor.get_uv_index();
+            //printf("UV index = %.3f\n", (float) uv_index);
+        }
+        //_clk = (i%2==0)?(1):(0);
+        //_mosi= (i%8==0)?(1):(0);
+        //_cs  = (i%16==0)?(1):(0);
+        //led1 = (i%8==0)?(1):(0);
     }
 }
 
-/*  MIP Main Reference
-#include "stdio.h"
-#include "string"
-#include "mbed.h"
-#include "SPI_MIP8.h"
-#include "SDFileSystem.h"
-#include "StateSW.h"
-#include "TglSW.h"
-
-
-#include "Arial28x28.h"
-#include "Prototype29x28.h"
-#include "Prototype70x86.h"
-#include "HGP23x29.h"
-#include "HGP15x19.h"
-#include "symbol.h"
-
-#define ON  1
-#define OFF 0
-
-
-//K64F
-SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // mosi,miso,sck,cs
-memLCD8 WD(PTD2,PTD3,PTD1,PTD0,PTC4,PTD3); //PTC12);  // mosi,miso,clk,cs,disp,power
-
-TglSW HaltSW(PTA4); // SW3
-InterruptIn OffSW(SW2);
-DigitalIn TexSW(SW3);
- 
-void SD2BUF(char *filepath);
-void SetMenu(void);
-void OffSequence(void);
-void DispAllDir(const char *fsrc);
-void ReadBmp(const char *fsrc, uint32_t FileNum);
-uint32_t CntFile(const char *fsrc);
-int  Menu = 0;
-bool  if16 = 0;
-bool  ifMargeTXT = 0;
-int  width =400;
-int  height=240;
-
-
-int main() {
-
-    uint32_t filenum=0;
-    char filepath[40];
-    char pol;
-    
-    if(OffSW==0) if16 = 1;     //16color MODE
-    else         if16 = 0;
-
-    
-    if(TexSW==0) ifMargeTXT = 1;
-    ifMargeTXT = 0;
-    WD.setmarge(1);
-    
-    sd.disk_initialize();
-    HaltSW.Enable(1);
-
-   
-    FILE *fp = fopen("/sd/settings.txt", "rb");
-    if(fp != NULL) {
-        fscanf(fp, "%d",&width);
-        fscanf(fp, "%d",&height);
-        sprintf(filepath,"/sd/%dx%d",width,height); //DispAllDir("/sd/180x180")
-    }
-    else{ 
-        width =180;
-        height=180;
-        sprintf(filepath,"/sd/180x180"); //DispAllDir("/sd/180x180")
-    }
-    fclose(fp);  
-   
-    
-    OffSW.fall(&OffSequence); // OFF Sequence 
-    WD.setWH(width,height);
-    
-    WD.background(Black);
-    WD.clsBUF();
-    WD.writeDISP(); 
-    WD.SwDisp(1);
-
-    while(HaltSW.State()){}
-    HaltSW.Clear();
-//    WD.background(White);
-//    WD.clsBUF();
-//    for (int i=0; i<8; i++)   WD.fillrect(i*26+6,16, i*26+6+20, 36,   i*2);    
-//    WD.writeDISP();
-//    wait(0.5);           
-//    while(HaltSW.State()){}
-//    HaltSW.Clear();
-
-
-    while(1){ //BITMAPS
-         
-        filenum = CntFile(filepath);
-        for(uint32_t i=0; i<filenum; i++){
-            ReadBmp(filepath,i);
-            
-            while(HaltSW.State()){             // VCOM invert when image is still
-                pol++;
-                WD.command( (pol << 6) & 0x40 ); 
-                wait(1);                       //1Hz
-            }
-            // Brink
-//            for(char j = 0; j < 8; j++){
-//                pol = j&0x01;
-//                EnterOrLeave = (j+1)&0x01;
-//                WD.command( (pol << 6) | (EnterOrLeave << 3) ); 
-//                wait(0.2);
-//            }
-
-            HaltSW.Clear();
-            WD.writeDISP();
-            wait(2);
-        }
-    }
-}
-
-
-void SD2BUF(char *filepath){
-    char R8[1],G8[1],B8[1] ,DUMMY[1];
-    int RGB;
-    FILE *fp ;
-
-    fp = fopen(filepath, "rb");
-    if(fp != NULL) {
-        for(int i=0; i< 54 ; i++) fscanf(fp,"%c",DUMMY);  // Discard Header 54bytes
-        for(int y=height-1; y>=0; y--) {
-            for(int x=0; x< width; x++) {    //24bit color  B 8bit -> G 8bit -> R 8bit
-                fscanf(fp, "%c",B8);
-                fscanf(fp, "%c",G8);
-                fscanf(fp, "%c",R8);
-                
-                RGB =  RGB8(*R8,*G8,*B8);    //6bit(8bit) MIP  MASK 0000 1110
-                WD.pixel(x,y,RGB);
-            }
-            if( y!=0)  // The last data column doesn't need padding
-            for(int x=(width*3)%4; (x%4 !=0); x++) fscanf(fp, "%c",DUMMY);    // 4byte boundery for every column
-        }
-    }
-    fclose(fp);
-}
-
-void SDtex2BUF(char *filepath){
-    int x,y,font,color;
-    char text[40];
-    int  ifEOF;
-    FILE *fp ;
-
-    fp = fopen(filepath, "r");
-    if(fp != NULL) {
-//        for(int i=0; i<3; i++){
-        while(ifEOF != -1){
-            ifEOF = fscanf(fp,"%d,%d,%d,%d,%[^,],",&x,&y,&font,&color,text);
-            WD.locate(x,y);
-            WD.foreground(color);
-            if      (font ==1)   WD.set_font((unsigned char*) HGP15x19);
-            else if (font ==2)   WD.set_font((unsigned char*) HGP23x29); 
-            else if (font ==3)   WD.set_font((unsigned char*) Arial28x28);
-            else                 WD.set_font((unsigned char*) Prototype70x86); 
-
-            WD.printf("%s",text);
-        }
-    }
-    fclose(fp);
-}
-
-
-void OffSequence(void){
-    WD.background(Black);
-    WD.clsBUF();
-    WD.SwDisp(0);
-    WD.writeDISP();
-    WD.writeDISP();
-
-}
-void DispAllDir(const char *fsrc)
-{
-    DIR *d = opendir(fsrc);
-    struct dirent *p;
-    char filepath[40];
-    
-    while ((p = readdir(d)) != NULL)  {
-        sprintf(filepath, "%s/%s",fsrc,p->d_name);
-        SD2BUF(filepath);
-        WD.writeDISP();
-    }
-    closedir(d);
-}
-
-void ReadBmp(const char *fsrc, uint32_t FileNum)
-{
-    DIR *d = opendir(fsrc);
-    struct dirent *p;
-    char filepath[40];
-    
-    for(uint32_t i=0; i< FileNum; i++) readdir(d);
-    if ((p = readdir(d)) != NULL)  {
-        sprintf(filepath, "%s/%s",fsrc,p->d_name);
-        SD2BUF(filepath);
-        if(ifMargeTXT){
-            sprintf(filepath, "%s_txt/%s.txt",fsrc,p->d_name);
-            SDtex2BUF(filepath);
-        }       
-    }
-    closedir(d);
-}
-
-uint32_t CntFile(const char *fsrc)
-{
-    DIR *d = opendir(fsrc);
-    uint32_t counter = 0;
-    while (readdir(d)!= NULL) counter++;
-    closedir(d);
-    return counter;
-}
-
-*/
+//////////////////////////////////////////////////////////////////////