
LCD example for NXP Rapid IoT Prototyping kit using hexiwear SDK. Read more at https://www.hackster.io/marcomerli/riotwear-mbed-2b2011.
Dependencies: GraphicsDisplay ColorMemLCD Large_fonts
main.cpp
- Committer:
- KURETA90
- Date:
- 2016-06-23
- Revision:
- 0:375bc0c22bf6
- Child:
- 2:25d611652243
File content as of revision 0:375bc0c22bf6:
#include "stdio.h" #include "mbed.h" #include "ColorMemLCD.h" //#include "SDFileSystem.h" #include "string" #include "Prototype24x27.h" #include "Prototype_num21x25.h" //#include "meirio_num11x14.h" #include "bmp_caterpillar_4bit.h" #include "bmp_leaf_4bit.h" #include "bmp_watch_4bit.h" #include "symb_block.h" #include "symb_block_rev.h" //SDFileSystem sd( PTE3, PTE1, PTE2, PTE4, "sd" ); // mosi,miso,sck,cs ColorMemLCD LCD( PTD2, PTD3, PTD1, PTD0, PTC4, PTD3, "TFT" ); // mosi, miso, sclk, cs, reset, (power) Ticker pollingTimer; void pollingTimerHandler() { LCD.polling(); } int main() { int i,j,k; int pic_height, window_height; int Divide = 8; // separate for 8 windows to save memory int Block = LCD_DISP_HEIGHT / Divide; pollingTimer.attach( &pollingTimerHandler, 1.0 ); LCD.command_AllClear(); /* SD read */ //LCD.BMP_24(0,0,"/sd/sample.bmp"); while(1) { /* Turn white - whole the screen */ LCD.background( LCD_COLOR_WHITE ); for(j = 0 ; j <Divide ; j++) { LCD.window(0, j*Block, LCD_DISP_WIDTH, Block); LCD.cls(); LCD.update(); } /* Hello */ pic_height = 44; window_height = 44; LCD.foreground( LCD_COLOR_GREEN ); LCD.window( 0, 10, LCD_DISP_WIDTH, window_height); LCD.cls(); LCD.Bitmap4bit(82, 10, 88, pic_height, (unsigned char *)bmp_caterpillar_4bit); LCD.locate(4, 10); LCD.set_font( (unsigned char*)Prototype24x27 ); LCD.printf("Hello"); LCD.update(); wait(0.8); /* world */ pic_height = 88; window_height = 44; LCD.window(0, 132, LCD_DISP_WIDTH, pic_height); LCD.cls(); LCD.locate(92, 148); LCD.set_font( (unsigned char*)Prototype24x27 ); LCD.printf("world"); LCD.update(); for(j=0; j<pic_height/window_height; j++){ LCD.window( 0, 60+j*window_height, LCD_DISP_WIDTH, window_height); LCD.Bitmap4bit( 0, 60, 176, pic_height, (unsigned char *)bmp_leaf_4bit ); LCD.update(); } wait(0.8); LCD.fillcircle( 40, 136, 18, LCD_COLOR_WHITE ); LCD.update(); wait(1); LCD.fillcircle( 160, 122, 12, LCD_COLOR_WHITE ); LCD.update(); wait(0.2); LCD.fillcircle( 120, 132, 14, LCD_COLOR_WHITE ); LCD.update(); wait(1); LCD.setBlinkMode( LCD_BLINKMODE_INVERSE ); wait(0.2); LCD.setBlinkMode( LCD_BLINKMODE_NONE ); wait(0.2); /* Cube */ LCD.background( LCD_COLOR_WHITE); for(k=0; k<7; k++){ // 6 times for(j=0; j<Divide; j++){ LCD.window(0, j*Block, LCD_DISP_WIDTH, Block); for(i=0; i<4; i++){ LCD.foreground( ((j+1+ k*(i*5))%6 +1) << 1 ); // except White & Black ( )%6 +1 if((j+k)%2) LCD.symbol( i*44, j*Block, (unsigned char *)symb_block ); else LCD.symbol( i*44, j*Block, (unsigned char *)symb_block_rev ); } LCD.update(); } wait(0.2); LCD.setBlinkMode( LCD_BLINKMODE_INVERSE ); wait(0.2); LCD.setBlinkMode( LCD_BLINKMODE_NONE ); wait(0.2); } wait(0.5); /* Watch */ LCD.background( LCD_COLOR_WHITE); for(j=0; j<Divide; j++){ LCD.window(0, j*Block, LCD_DISP_WIDTH, Block); LCD.Bitmap4bit( 0, 0, 176, 176, (unsigned char *)bmp_watch_4bit ); LCD.update(); } LCD.foreground( LCD_COLOR_BLUE ); LCD.window( 0, 54, LCD_DISP_WIDTH, 25); LCD.Bitmap4bit( 0, 0, 176, 176, (unsigned char *)bmp_watch_4bit ); // window back screen LCD.set_font( (unsigned char*)Prototype_num21x25 ); LCD.locate(22, 54); LCD.printf("10:"); for(k=0; k<40;k++){ LCD.locate(72, 54); LCD.printf("%02d",k+20); LCD.update(); wait((double)exp((double)(-k/3))); // time constant =3 } } }