I am playing with 3,5" (400x240) TFT display which is placed into Arduino Mega 2560 R3 board.
My final goal is taking .raw data from SD card and drawing it on display.
What I have done so far:
- My drawing method in the sketch:
void LoadImage(File& file)
{
for (int y = 0; y < SCREEN_HEIGHT && file.available(); y++) {
uint16_t buf[SCREEN_WIDTH];
for (int x = SCREEN_WIDTH - 1; x >= 0; x--) {
byte l = file.read();
byte h = file.read();
buf[x] = ((uint16_t)h << 8) | l;
}
myGLCD.drawPixelLine(0, y, SCREEN_WIDTH, buf);
}
}
- For reference drawPixelLine method's implementation from UTFT library:
void UTFT::drawPixelLine(int x, int y, int sx, uint16_t* data)
{
unsigned int col;
cbi(P_CS, B_CS);
setXY(x, y, x+sx-1, y);
for (int tc=0; tc<sx; tc++)
{
char* p = (char*)&data[tc];
LCD_Write_DATA(*(p + 1), *p);
}
sbi(P_CS, B_CS);
}
void UTFT::setXY(word x1, word y1, word x2, word y2)
{
if (orient==LANDSCAPE)
{
swap(word, x1, y1);
swap(word, x2, y2)
y1=disp_y_size-y1;
y2=disp_y_size-y2;
swap(word, y1, y2)
}
LCD_Write_COM(0x2a);
LCD_Write_DATA(x1>>8);
LCD_Write_DATA(x1);
LCD_Write_DATA(x2>>8);
LCD_Write_DATA(x2);
LCD_Write_COM(0x2b);
LCD_Write_DATA(y1>>8);
LCD_Write_DATA(y1);
LCD_Write_DATA(y2>>8);
LCD_Write_DATA(y2);
LCD_Write_COM(0x2c);
}
My current rendering:
current result
Desired image:
enter image description here
TFT Lcd and Mega Board enter image description here
UPDATE1
I ran henningan test from utft library, drawing sin/cos graph and simple squares
enter image description here
Here is attempt to render yellow square 100x100 raw data
enter image description here
-
Have you tried drawing a solid image first?Ignacio Vazquez-Abrams– Ignacio Vazquez-Abrams2014年12月20日 06:04:59 +00:00Commented Dec 20, 2014 at 6:04
-
@IgnacioVazquez-Abrams I tried to render yellow square, but without success. Please, see my updated postNeil Galiaskarov– Neil Galiaskarov2014年12月20日 16:48:46 +00:00Commented Dec 20, 2014 at 16:48
1 Answer 1
I'have the same LCD from mcufriend and it doesn't work with original UTFT library.
Try modified version from https://github.com/dgolda/UTFT and use:
myGLCD(NIC35WS,38,39,40,41); //3.5" TFTLCD for arduino 2560 from mcufriend.com