TinyCircuits

Tiny Screen

Tiny Screen
« on: January 06, 2019, 01:40:44 AM »
I have to change the color of the screen and the code below works:

if(x < 120){
          display.drawRect(0,0,96,64,TSRectangleFilled,TS_8b_Yellow);   
        }else{
          display.drawRect(0,0,96,64,TSRectangleFilled,TS_8b_Red);   
        }

I want to set the cursor to the middle of the screen and check the color of the screen in that position. Something like this

display.setCursor(48,32);
if (display.Color!=TS_8b_Yellow)
  display.drawRect(0,0,96,64,TSRectangleFilled,TS_8b_Yellow);   

Thanks in advance

Re: Tiny Screen
« Reply #1 on: January 07, 2019, 01:29:43 PM »
Hi jmontoya,

Due to the hardware setup of the TinyScreen and TinyScreen+, it is not possible to read data from the registers in the Graphic Display Data RAM via SPI. The only way to read a specific pixel's color would rely on the use of a buffer array and reference the specific index corresponding to the desired coordinate.

However, if you just chose the pixel on the center of the screen to detect the color of the entire screen, here's something you could do.

uint16_t color;

if(x < 120){
     color = TS_8b_Yellow;   
}else{
     color = TS_8b_Red;   
}

display.drawRect(0, 0, 96, 64, TSRectangleFilled, color);

if (color != TS_8b_Yellow)
  display.drawRect(0,0,96,64,TSRectangleFilled,TS_8b_Yellow);

I more or less made an assumption of what you were trying to do, but I hope this helps!

-Hunter