Post by kanlok on Dec 16, 2020 2:02:34 GMT -8
Hi,
I am using FT800 320x240 display. All is working fine, however touch is not syncronized i.e if I am touchg at (x,y) 177,11. track touch is responding at position: 50,140.
I have set the display as per below code. Also, my code is below for reference.
Pls help.
Thanks,
Lokesh
ino code:
I am using FT800 320x240 display. All is working fine, however touch is not syncronized i.e if I am touchg at (x,y) 177,11. track touch is responding at position: 50,140.
I have set the display as per below code. Also, my code is below for reference.
Pls help.
Thanks,
Lokesh
void setup()
{
Serial.begin(1000000); // JCB
GD.begin(0);
GD.wr32(REG_HCYCLE, 408);
GD.wr32(REG_HOFFSET, 70);
GD.wr32(REG_HSIZE, 320);
GD.wr32(REG_HSYNC0, 0);
GD.wr32(REG_HSYNC1, 10);
GD.wr32(REG_VCYCLE, 263);
GD.wr32(REG_VOFFSET, 13);
GD.wr32(REG_VSIZE, 240);
GD.wr32(REG_VSYNC0, 0);
GD.wr32(REG_VSYNC1, 2);
GD.wr32(REG_DITHER, 0);
GD.wr32(REG_PCLK_POL, 0);
GD.wr32(REG_PCLK, 8);
Serial.print(GD.w);
Serial.print("x");
Serial.println(GD.h);
}
ino code:
#include <EEPROM.h>
#include <SPI.h>
#include <GD2.h>
#define TAG_TOGGLE 200
#define TAG_FWPS_BTN 201
#define TAG_HRUP_BTN 202
#define TAG_MINUP_BTN 203
static uint16_t value = 15000;
static uint16_t options = OPT_FLAT;
void setup()
{
Serial.begin(1000000); // JCB
GD.begin(0);
GD.wr32(REG_HCYCLE, 408);
GD.wr32(REG_HOFFSET, 70);
GD.wr32(REG_HSIZE, 320);
GD.wr32(REG_HSYNC0, 0);
GD.wr32(REG_HSYNC1, 10);
GD.wr32(REG_VCYCLE, 263);
GD.wr32(REG_VOFFSET, 13);
GD.wr32(REG_VSIZE, 240);
GD.wr32(REG_VSYNC0, 0);
GD.wr32(REG_VSYNC1, 2);
GD.wr32(REG_DITHER, 0);
GD.wr32(REG_PCLK_POL, 0);
GD.wr32(REG_PCLK, 8);
Serial.print(GD.w);
Serial.print("x");
Serial.println(GD.h);
}
void loop()
{
setupDisplay();
}
void setupDisplay(){
readTags();
GD.cmd_dlstart();
GD.ClearColorRGB(54,75,209);
GD.Clear(1,1,1);
// GD.SaveContext();
GD.ColorRGB(255,255,255);
GD.cmd_text(5,212,24, 0, "00");
//GD.RestoreContext();
//GD.SaveContext();
//GD.ColorRGB(255,255,255);
GD.cmd_text(39,212,24,0,"00");
//GD.RestoreContext();
//GD.SaveContext();
//GD.ColorRGB(255,255,255);
GD.cmd_text(33,212,24,0,":");
//GD.RestoreContext();
//GD.SaveContext();
//GD.ColorRGB(255,255,255);
GD.cmd_text(3,7,23,0, "Controller Status");
//GD.RestoreContext();
//GD.SaveContext();
//GD.ColorRGB(255,255,255);
GD.cmd_text(3,45,23,0,"Fresh Water Pump :");
//GD.RestoreContext();
//GD.SaveContext();
//GD.ColorRGB(255,255,255);
GD.cmd_fgcolor(0x003870);
GD.cmd_bgcolor(0x002040);
GD.Tag(TAG_TOGGLE);
//GD.cmd_toggle(177, 11, 100, 29, options, value,"OFF" "\xff" "ON");
// Serial.print("Inside loop value is:");
//Serial.println(value);
GD.cmd_toggle(177, 11, 80, 29, options, value,"that" "\xff" "this");
GD.cmd_track(177, 11, 80, 29, TAG_TOGGLE);
// GD.cmd_toggle(177,11,100,27,0,0,"On?Off");
//GD.RestoreContext();
//GD.SaveContext();
GD.ColorRGB(67,173,43);
GD.cmd_text(202,45,23,0, "ON");
//GD.RestoreContext();
//GD.SaveContext();
GD.ColorRGB(255,255,255);
GD.cmd_text(3,75,23, 0, "Overhead Tank Pump :");
//GD.RestoreContext();
//GD.SaveContext();
GD.ColorRGB(67,173,43);
GD.cmd_text(202,75,23,0, "ON");
//GD.RestoreContext();
//GD.SaveContext();
GD.ColorRGB(255,255,255);
GD.cmd_text(195,212,24, 0, "31/12/2020");
//GD.RestoreContext();
//GD.SaveContext();
//GD.ColorRGB(255,255,255);
GD.cmd_fgcolor(0x159e8a);
GD.cmd_gradcolor(0x878787);
GD.cmd_button(34,100, 250,45, 23,0, "Set FW Pump Start Time");
//GD.RestoreContext();
//GD.SaveContext();
//GD.ColorRGB(255,255,255);
GD.cmd_text(80,150,24,0, "00");
//GD.RestoreContext();
//GD.SaveContext();
//GD.ColorRGB(255,255,255);
GD.cmd_text(160,150,24, 0, ":");
//GD.RestoreContext();
//GD.SaveContext();
//GD.ColorRGB(255,255,255);
GD.cmd_fgcolor(0x003870);
GD.cmd_gradcolor(0xffffff);
GD.cmd_keys(114,150,40,28, 25,1024, "^");
//GD.RestoreContext();
//GD.SaveContext();
//GD.ColorRGB(255,255,255);
GD.cmd_text(170,150,24, 0, "00 ");
//GD.RestoreContext();
//GD.SaveContext();
//GD.ColorRGB(255,255,255);
GD.cmd_fgcolor(0x003870);
GD.cmd_gradcolor(0xffffff);
GD.cmd_keys(210,150,40,28, 25,1024, "^");
//GD.RestoreContext();
GD.SaveContext();
GD.ColorRGB(0,56,112);
GD.LineWidth(16);
GD.Begin(RECTS);
GD.Vertex2f(80,2912);
GD.Vertex2f(5040,3360);
GD.SaveContext();
//GD.End();
//GD.RestoreContext();
GD.Display();
GD.cmd_swap();
}
void readTags(){
GD.get_inputs();
// Serial.println(GD.inputs.track_tag);
switch (GD.inputs.track_tag) {
// case TAG_DIAL:
// case TAG_SLIDER:
case TAG_TOGGLE:
value = GD.inputs.track_val;
//Serial.print("Value: ");
//Serial.println(value);
}
switch (GD.inputs.tag) {
case TAG_FWPS_BTN:
options = OPT_FLAT;
break;
case TAG_HRUP_BTN:
options = OPT_FLAT;
break;
case TAG_MINUP_BTN:
options = OPT_FLAT;
break;
}
}