david_prentice:
If every pixel is being clearly displayed your controller is worth saving.
Edit ili9481/initlcd.h
from:
LCD_Write_COM(0xC0);
LCD_Write_DATA(0x10);
LCD_Write_DATA(0x3B);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x11);
Change to
LCD_Write_COM(0xC0);
LCD_Write_DATA(0x00); //changes inversion
LCD_Write_DATA(0x3B);
LCD_Write_DATA(0x00);
LCD_Write_DATA(0x02);
LCD_Write_DATA(0x11);
I also tried another screen and it does the same.
This is part of the code that I use, there is some more where I make menus, but can you see any mistakes when I start the script?
// Codes
#include <UTFT.h>
#include <Keypad.h>
// TFT and Fonts
UTFT myGLCD(ILI9481, 38, 39, 40, 41);
extern uint8_t BigFont[];
extern uint8_t Grotesk32x64[];
This is just a intro "Splash Screen", that's the first time the screen comes on.
// Intro screen
myGLCD.InitLCD();
myGLCD.clrScr();
myGLCD.setFont(Grotesk32x64);
myGLCD.setColor(VGA_BLUE);
myGLCD.print((char*)"AB Catalyst", CENTER, 100);
myGLCD.print((char*)"TREATMENT", CENTER, 164);
delay (2000);
myGLCD.clrScr();
myGLCD.setColor (255, 0, 0);
for (int i = 1; i < 319; i += 5)
{
myGLCD.drawLine(1, i, (i * 1.6) - 10, 319);
}
myGLCD.setColor (255, 0, 0);
for (int i = 319; i > 1; i -= 5)
{
myGLCD.drawLine(478, i, (i * 1.6) - 11, 1);
}
myGLCD.setColor (0, 255, 255);
for (int i = 319; i > 1; i -= 5)
{
myGLCD.drawLine(1, i, 491 - (i * 1.6), 1);
}
myGLCD.setColor (0, 255, 255);
for (int i = 1; i < 319; i += 5)
{
myGLCD.drawLine(478, i, 490 - (i * 1.6), 319);
}
for (int i = 0; i < 10000; i++)
{
myGLCD.setColor(random(255), random(255), random(255));
myGLCD.drawPixel(2 + random(479), 16 + random(319));
}
myGLCD.clrScr();
Splash();
}
These are the other menus,
void Splash() {
myGLCD.setColor(VGA_BLUE);
myGLCD.drawRect(0, 0, 479, 319);
myGLCD.drawLine(1, 19, 478, 19);
myGLCD.setFont(BigFont);
myGLCD.print((char*)"AB Catalyst", CENTER, 2);
myGLCD.setColor(VGA_WHITE);
myGLCD.print((char*)"'Press 'A' - Statistics'", 1, 100);
myGLCD.print((char*)"'Press 'B' - Delay Setup'", 1, 116);
myGLCD.print((char*)"'Press 'C' - Blow Setup'", 1, 132);
myGLCD.print((char*)"'Press 'D' - Examples Page'", 1, 148);
myGLCD.setColor(VGA_GRAY);
myGLCD.print((char*)"Serial#", 288, 302);
myGLCD.printNumI(serialNum, 405, 302);
}
void title() {
CurrentMode = TitleMode;
myGLCD.clrScr();
myGLCD.setColor(VGA_BLUE);
myGLCD.drawRect(0, 0, 479, 319);
myGLCD.drawLine(1, 19, 478, 19);
myGLCD.setFont(BigFont);
myGLCD.print((char*)"AB Catalyst", CENTER, 2);
myGLCD.setColor(VGA_WHITE);
myGLCD.print((char*)"Delay Between Blows :", 2, 48); //Delay time
myGLCD.printNumI(offTime, 337, 48);
myGLCD.print((char*)"ms", 435, 48);
myGLCD.print((char*)"Length of Each Blow :", 2, 64); //Blow time
myGLCD.printNumI(onTime, 337, 64);
myGLCD.print((char*)"s", 402, 64);
myGLCD.print((char*)"System Active For :", 2, 80); //Active Days
myGLCD.printNumI(activeDays, 305, 80);
myGLCD.print((char*)"Days", 355, 80);
myGLCD.print((char*)"System Active For :", 2, 96); //Active Hours
myGLCD.printNumI(activeHours, 305, 96);
myGLCD.print((char*)"Hours", 355, 96);
myGLCD.print((char*)"Number of Blows :", 2, 112); //Blows
myGLCD.printNumI(blows, 274 , 112);
myGLCD.print((char*)"KGs powder used :", 2, 128); //KGs used
myGLCD.printNumI(powderUsed, 274, 128);
myGLCD.setColor(VGA_RED);
myGLCD.print((char*)"'Press 'A' - Update Stats'", 1, 150);
myGLCD.print((char*)"'Press 'B' - Delay Setup'", 1, 166);
myGLCD.print((char*)"'Press 'C' - Blow Setup'", 1, 182);
myGLCD.print((char*)"'Press 'D' - Examples Page'", 1, 198);
myGLCD.setColor(VGA_GRAY);
myGLCD.print((char*)"Serial#", 288, 302);
myGLCD.printNumI(serialNum, 405, 302);
}
void offTimeChange() {
myGLCD.clrScr();
myGLCD.setColor(VGA_BLUE);
myGLCD.drawRect(0, 0, 479, 319);
myGLCD.drawLine(1, 19, 478, 19);
myGLCD.setFont(BigFont);
myGLCD.print((char*)"AB Catalyst", CENTER, 2);
myGLCD.setColor(VGA_WHITE);
myGLCD.print((char*)"CHANGE BLOW DELAY TIME", CENTER, 34);
myGLCD.print((char*)"IN MILLISECONDS", CENTER, 50);
myGLCD.print((char*)"ENTER VALUE", CENTER, 66);
myGLCD.print((char*)"PRESS # TO SAVE", CENTER, 102);
myGLCD.print((char*)"PRESS * TO CANCEL", CENTER, 118);
myGLCD.setColor(VGA_RED);
myGLCD.print((char*)"'Press 'A' - Statistics'", 1, 146);
myGLCD.print((char*)"'Press 'C' - Blow Setup'", 1, 162);
myGLCD.print((char*)"'Press 'D' - Examples Page'", 1, 178);
myGLCD.setColor(VGA_GRAY);
myGLCD.print((char*)"Serial#", 288, 302);
myGLCD.printNumI(serialNum, 405, 302);
}
void onTimeChange() {
myGLCD.clrScr();
myGLCD.setColor(VGA_BLUE);
myGLCD.drawRect(0, 0, 479, 319);
myGLCD.drawLine(1, 19, 478, 19);
myGLCD.setFont(BigFont);
myGLCD.print((char*)"AB Catalyst", CENTER, 2);
myGLCD.setColor(VGA_WHITE);
myGLCD.print((char*)"CHANGE LENGTH OF BLOW TIME", CENTER, 50);
myGLCD.print((char*)"ENTER VALUE", CENTER, 66);
myGLCD.print((char*)"PRESS # TO SAVE", CENTER, 102);
myGLCD.print((char*)"PRESS * TO CANCEL", CENTER, 118);
myGLCD.setColor(VGA_RED);
myGLCD.print((char*)"'Press 'A' - Statistics'", 1, 146);
myGLCD.print((char*)"'Press 'B' - Delay Setup'", 1, 162);
myGLCD.print((char*)"'Press 'D' - Examples Page'", 1, 178);
myGLCD.setColor(VGA_GRAY);
myGLCD.print((char*)"Serial#", 288, 302);
myGLCD.printNumI(serialNum, 405, 302);
}
void offTimeSaved() {
myGLCD.clrScr();
myGLCD.setColor(VGA_BLUE);
myGLCD.drawRect(0, 0, 479, 319);
myGLCD.drawLine(1, 19, 478, 19);
myGLCD.setFont(BigFont);
myGLCD.print((char*)"AB Catalyst", CENTER, 2);
myGLCD.setColor(VGA_WHITE);
myGLCD.print((char*)"LENGTH OF DELAY TIME SAVED", CENTER, 50);
myGLCD.print((char*)"DELAY TIME NOW", CENTER, 66);
myGLCD.setColor(VGA_RED);
myGLCD.printNumI(offTime, CENTER, 82);
pressedKeyCount = 0,
delay (3000);
title();
}
void onTimeSaved() {
myGLCD.clrScr();
myGLCD.setColor(VGA_BLUE);
myGLCD.drawRect(0, 0, 479, 319);
myGLCD.drawLine(1, 19, 478, 19);
myGLCD.setFont(BigFont);
myGLCD.print((char*)"AB Catalyst", CENTER, 2);
myGLCD.setColor(VGA_WHITE);
myGLCD.print((char*)"LENGTH OF BLOW TIME SAVED", CENTER, 50);
myGLCD.print((char*)"BLOW TIME NOW", CENTER, 66);
myGLCD.setColor(VGA_RED);
myGLCD.printNumI(onTime, CENTER, 82);
pressedKeyCount = 0,
delay (3000);
title();
}
void reset() {
myGLCD.clrScr();
myGLCD.setColor(VGA_BLUE);
myGLCD.drawRect(0, 0, 479, 319);
myGLCD.drawLine(1, 19, 478, 19);
myGLCD.setFont(BigFont);
myGLCD.print((char*)"AB Catalyst", CENTER, 2);
myGLCD.setColor(VGA_WHITE);
myGLCD.print((char*)"NO CHANGES HAVE BEEN SAVED", CENTER, 50);
delay (2000);
myGLCD.clrScr();
title();
}
void tooManyNumbers() {
myGLCD.clrScr();
myGLCD.setColor(VGA_BLUE);
myGLCD.drawRect(0, 0, 479, 319);
myGLCD.drawLine(1, 19, 478, 19);
myGLCD.setFont(BigFont);
myGLCD.print((char*)"AB Catalyst", CENTER, 2);
myGLCD.setColor(VGA_WHITE);
myGLCD.print((char*)"TOO MANY DIGITS ENTERED", CENTER, 50);
myGLCD.print((char*)"PLEASE CHOOSE MENU AGAIN", CENTER, 68);
myGLCD.print((char*)"AND RE-ENTER NEW TIME", CENTER, 86);
delay (3000);
myGLCD.clrScr();
title();
}