This is test program for running 192GC00(240 x 320 dot, 65K Color TFT LCD module ) on Star Board Orange.

Dependencies:   TextLCD mbed

Committer:
y_notsu
Date:
Fri Jan 21 12:51:26 2011 +0000
Revision:
0:0e2aded4edb0

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
y_notsu 0:0e2aded4edb0 1 //
y_notsu 0:0e2aded4edb0 2
y_notsu 0:0e2aded4edb0 3 #include "mbed.h"
y_notsu 0:0e2aded4edb0 4
y_notsu 0:0e2aded4edb0 5 #include "REL225L01.h"
y_notsu 0:0e2aded4edb0 6 REL225L01 tft;
y_notsu 0:0e2aded4edb0 7 #include "imagedata.h"
y_notsu 0:0e2aded4edb0 8
y_notsu 0:0e2aded4edb0 9 ////////////////////////////////////////
y_notsu 0:0e2aded4edb0 10 //////// For SD_card ////////
y_notsu 0:0e2aded4edb0 11 ////////////////////////////////////////
y_notsu 0:0e2aded4edb0 12 #include "SDHCFileSystem.h"
y_notsu 0:0e2aded4edb0 13 SDFileSystem sd(p5, p6, p7, p8, "sd"); // mosi, miso, sclk, cs, name (HW modification candidate)
y_notsu 0:0e2aded4edb0 14
y_notsu 0:0e2aded4edb0 15 ////////////////////////////////////////
y_notsu 0:0e2aded4edb0 16 //////// For TextLCD ////////
y_notsu 0:0e2aded4edb0 17 ////////////////////////////////////////
y_notsu 0:0e2aded4edb0 18 #include "TextLCD.h"
y_notsu 0:0e2aded4edb0 19 #ifdef USE_TextLCD_20x4
y_notsu 0:0e2aded4edb0 20 //TextLCD lcd( p24, p26, p27, p28, p29, p30, TextLCD::LCD20x4 ); // rs, e, d0-d3
y_notsu 0:0e2aded4edb0 21 #else
y_notsu 0:0e2aded4edb0 22 TextLCD lcd( p24, p26, p27, p28, p29, p30 ); // rs, e, d0-d3
y_notsu 0:0e2aded4edb0 23 #endif
y_notsu 0:0e2aded4edb0 24
y_notsu 0:0e2aded4edb0 25 DigitalOut myled(LED1);
y_notsu 0:0e2aded4edb0 26
y_notsu 0:0e2aded4edb0 27 void test_file_write( char *title, char *path );
y_notsu 0:0e2aded4edb0 28 int position( void );
y_notsu 0:0e2aded4edb0 29
y_notsu 0:0e2aded4edb0 30 LocalFileSystem local("local");
y_notsu 0:0e2aded4edb0 31
y_notsu 0:0e2aded4edb0 32 int main() {
y_notsu 0:0e2aded4edb0 33 tft.lcd_init();
y_notsu 0:0e2aded4edb0 34 printf("\r\n--------------- Starting -----------------\r\n");
y_notsu 0:0e2aded4edb0 35 lcd.printf("----Starting----");
y_notsu 0:0e2aded4edb0 36 lcd.locate(0,1);
y_notsu 0:0e2aded4edb0 37 wait(3);
y_notsu 0:0e2aded4edb0 38 test_file_write( "SD card", "/sd/star_bd.txt" );
y_notsu 0:0e2aded4edb0 39 wait(2);
y_notsu 0:0e2aded4edb0 40 while(1){
y_notsu 0:0e2aded4edb0 41 tft.lcd_clear(BLACK);
y_notsu 0:0e2aded4edb0 42 //wait(1);
y_notsu 0:0e2aded4edb0 43 tft.lcd_clear(WHITE);
y_notsu 0:0e2aded4edb0 44 // wait(1);
y_notsu 0:0e2aded4edb0 45 tft.lcd_clear(RED);
y_notsu 0:0e2aded4edb0 46 //wait(1);
y_notsu 0:0e2aded4edb0 47 tft.lcd_clear(GREEN);
y_notsu 0:0e2aded4edb0 48 // wait(1);
y_notsu 0:0e2aded4edb0 49 tft.lcd_clear(BLUE);
y_notsu 0:0e2aded4edb0 50 //tft.lcd_clear(BLACK);
y_notsu 0:0e2aded4edb0 51 //tft.lcd_image(0, Header1, MAGENTA, BLACK);
y_notsu 0:0e2aded4edb0 52 //tft.lcd_image(8, Header2, CYAN, BLACK);
y_notsu 0:0e2aded4edb0 53 FILE *fp = fopen("/sd/test1.bmp", "rb");
y_notsu 0:0e2aded4edb0 54 if ( fp == NULL ) {
y_notsu 0:0e2aded4edb0 55 lcd.printf( "error" );
y_notsu 0:0e2aded4edb0 56 error( "Could not open file for write\n" );
y_notsu 0:0e2aded4edb0 57 }
y_notsu 0:0e2aded4edb0 58 int dat;
y_notsu 0:0e2aded4edb0 59 int Bdat,Gdat,Rdat;
y_notsu 0:0e2aded4edb0 60 int RGBdat;
y_notsu 0:0e2aded4edb0 61 for(int i=0;i<54;i++)
y_notsu 0:0e2aded4edb0 62 {
y_notsu 0:0e2aded4edb0 63 dat=fgetc(fp); //Header
y_notsu 0:0e2aded4edb0 64 }
y_notsu 0:0e2aded4edb0 65 tft.lcd_cmd(RAMWR);
y_notsu 0:0e2aded4edb0 66 for(int i=0;i<=320;i++)
y_notsu 0:0e2aded4edb0 67 {
y_notsu 0:0e2aded4edb0 68 for(int j=0;j<=240;j++)
y_notsu 0:0e2aded4edb0 69 {
y_notsu 0:0e2aded4edb0 70 Bdat=fgetc(fp);
y_notsu 0:0e2aded4edb0 71 Gdat=fgetc(fp);
y_notsu 0:0e2aded4edb0 72 Rdat=fgetc(fp);
y_notsu 0:0e2aded4edb0 73 RGBdat=((Rdat&0xF8)<<8)+((Gdat&0xFC)<<3)+((Bdat&0xF8)>>3);
y_notsu 0:0e2aded4edb0 74 tft.lcd_data(RGBdat);
y_notsu 0:0e2aded4edb0 75 }
y_notsu 0:0e2aded4edb0 76 }
y_notsu 0:0e2aded4edb0 77 fclose(fp);
y_notsu 0:0e2aded4edb0 78 wait(3);
y_notsu 0:0e2aded4edb0 79
y_notsu 0:0e2aded4edb0 80 FILE *fp2 = fopen("/sd/test2.bmp", "rb");
y_notsu 0:0e2aded4edb0 81 if ( fp2 == NULL ) {
y_notsu 0:0e2aded4edb0 82 lcd.printf( "error" );
y_notsu 0:0e2aded4edb0 83 error( "Could not open file for write\n" );
y_notsu 0:0e2aded4edb0 84 }
y_notsu 0:0e2aded4edb0 85 for(int i=0;i<54;i++)
y_notsu 0:0e2aded4edb0 86 {
y_notsu 0:0e2aded4edb0 87 dat=fgetc(fp2); //Header
y_notsu 0:0e2aded4edb0 88 }
y_notsu 0:0e2aded4edb0 89 tft.lcd_cmd(RAMWR);
y_notsu 0:0e2aded4edb0 90 for(int i=0;i<=320;i++)
y_notsu 0:0e2aded4edb0 91 {
y_notsu 0:0e2aded4edb0 92 for(int j=0;j<=240;j++)
y_notsu 0:0e2aded4edb0 93 {
y_notsu 0:0e2aded4edb0 94 Bdat=fgetc(fp2);
y_notsu 0:0e2aded4edb0 95 Gdat=fgetc(fp2);
y_notsu 0:0e2aded4edb0 96 Rdat=fgetc(fp2);
y_notsu 0:0e2aded4edb0 97 RGBdat=((Rdat&0xF8)<<8)+((Gdat&0xFC)<<3)+((Bdat&0xF8)>>3);
y_notsu 0:0e2aded4edb0 98 tft.lcd_data(RGBdat);
y_notsu 0:0e2aded4edb0 99 }
y_notsu 0:0e2aded4edb0 100 }
y_notsu 0:0e2aded4edb0 101 fclose(fp2);
y_notsu 0:0e2aded4edb0 102 wait(3);
y_notsu 0:0e2aded4edb0 103
y_notsu 0:0e2aded4edb0 104
y_notsu 0:0e2aded4edb0 105 wait(1);
y_notsu 0:0e2aded4edb0 106 }
y_notsu 0:0e2aded4edb0 107
y_notsu 0:0e2aded4edb0 108
y_notsu 0:0e2aded4edb0 109 }
y_notsu 0:0e2aded4edb0 110
y_notsu 0:0e2aded4edb0 111
y_notsu 0:0e2aded4edb0 112 void test_file_write( char *title, char *path ) {
y_notsu 0:0e2aded4edb0 113 // SD card test
y_notsu 0:0e2aded4edb0 114 lcd.locate( 0, position() );
y_notsu 0:0e2aded4edb0 115 lcd.printf( "%s: ", title );
y_notsu 0:0e2aded4edb0 116
y_notsu 0:0e2aded4edb0 117 FILE *fp = fopen( path, "w" );
y_notsu 0:0e2aded4edb0 118 if ( fp == NULL ) {
y_notsu 0:0e2aded4edb0 119 lcd.printf( "error" );
y_notsu 0:0e2aded4edb0 120 error( "Could not open file for write\n" );
y_notsu 0:0e2aded4edb0 121 }
y_notsu 0:0e2aded4edb0 122 fprintf( fp, "The mbed writing a file through the star board orange (%s)!", title );
y_notsu 0:0e2aded4edb0 123 fclose( fp );
y_notsu 0:0e2aded4edb0 124
y_notsu 0:0e2aded4edb0 125 lcd.printf( "OK." );
y_notsu 0:0e2aded4edb0 126 }
y_notsu 0:0e2aded4edb0 127
y_notsu 0:0e2aded4edb0 128 int position( void ) {
y_notsu 0:0e2aded4edb0 129 static int p = 0;
y_notsu 0:0e2aded4edb0 130
y_notsu 0:0e2aded4edb0 131 #ifdef USE_TextLCD_20x4
y_notsu 0:0e2aded4edb0 132 return( ++p % 4 );
y_notsu 0:0e2aded4edb0 133 #else
y_notsu 0:0e2aded4edb0 134 return( ++p % 2 );
y_notsu 0:0e2aded4edb0 135 #endif
y_notsu 0:0e2aded4edb0 136 }