Anzi, l'ho scritto adesso:
unsigned long displayTime = millis();
#define displayDelay 500
unsigned long displayTimeEco = 0;
#define displayDelayEco 450
#define sclk 15
#define mosi 16
#define cs1 4
#define dc1 5
#define rst1 6
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
Adafruit_ST7735 display1 = Adafruit_ST7735(cs1, dc1, rst1);
byte temp = 0;
void ciclo(){
if (temp < 9){temp++;}
else temp = 0;
}
void print_T(){
display1.setTextColor(ST7735_WHITE);
display1.setTextSize(3);
display1.setCursor(50, 65);
display1.print(temp);
}
void print_T_Clean(){
display1.setTextColor(ST7735_BLACK);
display1.setTextSize(3);
display1.setCursor(50, 65);
display1.print(temp);
}
void setup() {
pinMode(sclk, OUTPUT);
pinMode(mosi, OUTPUT);
pinMode(cs1, OUTPUT);
pinMode(dc1, OUTPUT);
pinMode(rst1, OUTPUT);
display1.initR(INITR_BLACKTAB);
display1.fillScreen(ST7735_BLACK);
}
void loop() {
ciclo();
if (millis() - displayTime > displayDelay) {
displayTimeEco = millis();
displayTime += displayDelay;
print_T();
}
if (millis() - displayTimeEco > displayDelayEco){
print_T_Clean();
displayTimeEco = 0;
}
}
Questo sketch di prova va bene? E' così che intendevi?