Switch to SPI (compatibility) & speed up rendering
This commit is contained in:
parent
ce4ebcb7d0
commit
b63654096f
@ -1,7 +1,16 @@
|
||||
#include "SPI.h"
|
||||
#include "Adafruit_GFX.h"
|
||||
#include "Adafruit_TFTLCD.h"
|
||||
//#include "Adafruit_ImageReader.h"
|
||||
//#include "Adafruit_TFTLCD.h"
|
||||
#include "SPI.h"
|
||||
#include "Adafruit_GFX.h"
|
||||
#include "Adafruit_ILI9341.h"
|
||||
|
||||
// For the Adafruit shield, these are the default.
|
||||
#define TFT_DC 48
|
||||
#define TFT_CS 49
|
||||
|
||||
// Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC
|
||||
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
|
||||
#include <TouchScreen.h>
|
||||
#include <avr/power.h>
|
||||
#include <avr/sleep.h>
|
||||
@ -67,10 +76,10 @@ word pin50 = 50;
|
||||
word pin51 = 51;
|
||||
word pin52 = 52;
|
||||
word pin53 = 53;
|
||||
word LCD_RD = A0;
|
||||
word LCD_WR = A1;
|
||||
word LCD_CD = A2;
|
||||
word LCD_CS = A3;
|
||||
//word LCD_RD = A0;
|
||||
//word LCD_WR = A1;
|
||||
//word LCD_CD = A2;
|
||||
//word LCD_CS = A3;
|
||||
word pinA4 = A4;
|
||||
word pinA5 = A5;
|
||||
word pinA6 = A6;
|
||||
@ -94,7 +103,7 @@ word pinA15 = A15;
|
||||
#define YELLOW 0xFFE0
|
||||
#define WHITE 0xFFFF
|
||||
|
||||
Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, A0);
|
||||
//Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, A0);
|
||||
|
||||
#define YP A4
|
||||
#define XM A5
|
||||
@ -102,9 +111,9 @@ Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, A0);
|
||||
#define XP 31
|
||||
|
||||
#define TS_MINX 100
|
||||
#define TS_MINY 82
|
||||
#define TS_MAXX 812
|
||||
#define TS_MAXY 890
|
||||
#define TS_MINY 150
|
||||
#define TS_MAXX 900
|
||||
#define TS_MAXY 900
|
||||
|
||||
TouchScreen ts = TouchScreen(XP, YP, XM, YM, 333);
|
||||
|
||||
@ -116,6 +125,7 @@ boolean debug = true;
|
||||
|
||||
//Adafruit_Image img;
|
||||
// Plant logo
|
||||
|
||||
static unsigned const char images_bits[] PROGMEM = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
@ -831,16 +841,18 @@ boolean s1, s2, s3, s4;
|
||||
|
||||
void setup(void) {
|
||||
Serial.begin(9600);
|
||||
tft.reset();
|
||||
tft.begin(0x9341);
|
||||
//tft.reset();
|
||||
tft.begin();
|
||||
tft.setRotation(1);
|
||||
if(!fastboot) {
|
||||
tft.fillScreen(WHITE);
|
||||
tft.drawXBitmap(0, 14, images_bits, 320, 212, GREEN); // loading
|
||||
tft.fillScreen(ILI9341_WHITE);
|
||||
yield();
|
||||
tft.drawXBitmap(0, 14, images_bits, 320, 212, ILI9341_GREEN); // loading
|
||||
delay(4000);
|
||||
tft.fillScreen(WHITE);
|
||||
tft.fillScreen(ILI9341_WHITE);
|
||||
yield();
|
||||
delay(1000);
|
||||
//tft.fillRect(0, 0, 320, 23, BLACK);
|
||||
//tft.fillRect(0, 0, 320, 23, ILI9341_BLACK);
|
||||
printConsoleText("Booting GreenhouseOS...||");
|
||||
delay(250);
|
||||
}
|
||||
@ -894,21 +906,57 @@ void loop(void) {
|
||||
String txtin = "Serial: " + Serial.readString();
|
||||
printConsoleText(txtin.substring(0, txtin.length() - 1));
|
||||
}
|
||||
|
||||
getMoisture();
|
||||
unsigned long mil = millis();
|
||||
String tmp = "[";
|
||||
if(mil / 1000 < 10) {
|
||||
tmp += " ";
|
||||
}
|
||||
else if(mil / 1000 < 100) {
|
||||
tmp += " ";
|
||||
}
|
||||
else if(mil / 1000 < 1000) {
|
||||
tmp += " ";
|
||||
}
|
||||
else if(mil / 1000 < 10000) {
|
||||
tmp += " ";
|
||||
}
|
||||
else if(mil / 1000 < 100000) {
|
||||
tmp += " ";
|
||||
}
|
||||
else if(mil / 1000 < 1000000) {
|
||||
tmp += " ";
|
||||
}
|
||||
tmp += mil / 1000;
|
||||
tmp += ".";
|
||||
|
||||
if(mil % 1000 < 10) {
|
||||
tmp += "00";
|
||||
}
|
||||
else if(mil % 1000 < 100) {
|
||||
tmp += "0";
|
||||
}
|
||||
tmp += mil % 1000;
|
||||
tmp += "]";
|
||||
//printConsoleText(tmp);
|
||||
//if(mil % 60000 < 3000) {
|
||||
getMoisture();
|
||||
//delay(500);
|
||||
//}
|
||||
|
||||
// change upd to true if screen update needed
|
||||
if(!debug && upd) {
|
||||
tft.fillScreen(BLACK);
|
||||
tft.fillRect(0, 0, 320, 20, WHITE);
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
yield();
|
||||
tft.fillRect(0, 0, 320, 20, ILI9341_WHITE);
|
||||
tft.setCursor(2, 2);
|
||||
tft.setTextSize(2);
|
||||
tft.setTextColor(BLACK);
|
||||
tft.setTextColor(ILI9341_BLACK);
|
||||
tft.print("Water Level: ");
|
||||
|
||||
|
||||
upd = false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
ISR (WDT_vect)
|
||||
@ -1064,7 +1112,7 @@ void enablePS(int level) {
|
||||
if(level > 1) {
|
||||
Serial.end();
|
||||
power_adc_disable();
|
||||
power_spi_disable();
|
||||
//power_spi_disable();
|
||||
power_usart0_disable();
|
||||
power_usart1_disable();
|
||||
power_usart2_disable();
|
||||
@ -1092,7 +1140,8 @@ void clearLog() {
|
||||
|
||||
void printConsoleText(String text) {
|
||||
if (outtext.equals("") && debug) {
|
||||
tft.fillScreen(BLACK);
|
||||
tft.fillScreen(ILI9341_BLACK);
|
||||
yield();
|
||||
}
|
||||
oldtext = outtext;
|
||||
if (text.length() <= 53) {
|
||||
@ -1125,7 +1174,7 @@ void printConsoleText(String text) {
|
||||
//tft.setCursor(0, 0);
|
||||
//tft.fillScreen(BLACK);
|
||||
tft.setCursor(0, (count) * 8);
|
||||
tft.setTextColor(WHITE);
|
||||
tft.setTextColor(ILI9341_WHITE);
|
||||
tft.setTextSize(1);
|
||||
for(int x = count - 1; x >= 0; x--) {
|
||||
String tmp = getString(outtext, x);
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user