Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
- Committer:
- STakayama
- Date:
- 2018-05-16
- Revision:
- 5:79dc134e6033
- Parent:
- 4:588bc9618fff
- Child:
- 6:aaba08f73be5
File content as of revision 5:79dc134e6033:
#include "mbed.h"
#include "Si1133.h"
#include "SPI_MIP16.h"
#include "data.h"
#include "HGP23x29.h"
#include "HGP15x19.h"
//Si1133 uv_sensor(PC4, PC5);
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)
//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);
uint8_t ccolor_table[] = {Black,Gray,Blue ,LightBlue ,Green ,LightGreen ,Cyan ,LightCyan,
Red ,pink,Magenta,LightMagenta,Yellow,LightYellow,LightGray,White};
bool if16 = 0;
bool ifMargeTXT = 0;
int width =176;
int height=176;
int test_lcd(void)
{
int i;
// Power On Sequece
// _lcd_reset = 0;
// _lcd_reset = 1;
_lcd_extmod = 1;
_lcd_extmod = 0;
_lcd_disp = 1; // hontoha 0
// command(0);
WD.setWH(width,height); // Default X/Y
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.writeDISP();
WD.foreground(Green);
WD.set_font((unsigned char*) HGP23x29);
WD.locate(2,2); WD.printf("ABCDEFGHIJK");
WD.foreground(Red);
WD.set_font((unsigned char*) HGP15x19);
WD.locate(2,32); WD.printf("NOPQRSTUVWXYZ");
WD.foreground(Blue);
if(height>88){
WD.set_font((unsigned char*) HGP15x19);
WD.locate(10,80); WD.printf("abcdefghijklmnopqrstuvwxyz");
WD.locate(10,115); WD.printf("0123456789");
WD.locate(10,150); WD.printf("Hello world");
}
WD.writeDISP();
_lcd_disp = 1;
return 0;
/**/
}
void uv_init_proc(void)
{
;
}
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);
test_lcd();
// if (!uv_sensor.open()) printf("Device Error detected!\n");
int i;
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);
}
}
/* 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;
}
*/