Estoy jugando con la pantalla TFT de 3,5 "(400x240 chino controlador de 8 bits desconocido) que se coloca en la placa Arduino Mega 2560 R3.
Mi objetivo final es tomar los datos .raw de la tarjeta SD y dibujarlos en la pantalla.
Lo que he hecho hasta ahora:
- Mi dibujo en el bosquejo:
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);
}
}
- Para la implementación del método de referencia drawPixelLine desde la biblioteca UTFT:
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);
}
Mi representación actual:
Imagendeseada:
TFT Lcd y Mega Board
ACTUALIZADO1
Ejecutélapruebadehenningandelabibliotecautft,dibujandoelgráficosin/cosycuadradossimples
Aquí hay un intento de representar datos en bruto de 100x100 cuadrados amarillos