#include "SPI.h"
#include "Adafruit_GFX.h" //display
#include "Adafruit_ILI9341.h" //display
#include "RTClib.h" // Date and time DS1307 RTC
#include "Wire.h" //libreria per il bus I2C

//presi da questo esempio 
//https://cplusplus.com/reference/cstring/strcmp/
#include <stdio.h>
#include <string.h>

// definisco i pin del display
#define TFT_DC 9
#define TFT_CS 10

// initialize ILI9341 TFT library
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);

//calibrazione schermo
const int XP=8,XM=A2,YP=A3,YM=9; //240x320 ID=0x9341
const int TS_LEFT=121,TS_RT=925,TS_TOP=85,TS_BOT=930;

//definisco le variabili dei colori
#define nero   0x0000
#define rosso     0xF800
#define bianco   0xFFFF

RTC_DS1307 rtc; //creo istanza rtc

int orario = 0; //inizializzo var orario
int orarioconf = 0; // variabile per confronto orario

void setup() {
  Serial.begin(9600); // preparo la seriale per rtc

  // verifico che rtc funzioni
  if (!rtc.begin()) {
    Serial.println("Errore! Verifica le connesioni!");
    return;
  }

  //se l'RTC non è stato mai inizializzato allora configuro l'ora utilizzando
  //l'ora di compilazione dello sketch
    if (!rtc.isrunning()) {
    Serial.println("Configuro l'ora");
    //Uso l'ora di compilazione dello sketch
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

  tft.begin(); // inizializzo il display
  tft.setRotation(135); //setto l'orientamento del testo (orizzontale)
  tft.fillScreen(nero); //setto il colore di sfondo
}

void loop() {
  //Richiamo l'ora
  DateTime now = rtc.now();

  //stampo l'ora sul display
  tft.setTextSize(3);
  tft.setCursor(35, 100);
  tft.setTextColor(rosso);

  orario = "mm"; // creazione della stringa con orario
  //strcpy(orario, "hh:mm");

  //if (now.toString(orarioconf) != now.toString(orario)) {
  if (orarioconf != orario) {
    //tft.println (strcmp (orarioconf,orario));
  //if (!strcmp (now.toString(orarioconf), now.toString(orario)) != 0) {
  //if (!strcmp(dialedNumber, "01")) return 1;

    // stampo un rettangolo nero per cancellare l'ora
    // 1 dist da sx - 2 dist dall'alto - 3 lung - 4 alt
    tft.fillRect(0, 100, 400, 70, bianco);

    tft.println (orario);
    //tft.println (int(orario));

    tft.setCursor(35,120);
    tft.println (orarioconf);
    //tft.println (int(orarioconf));

    strcpy(orarioconf, "mm");
    delay(1000);
  }

}
GND5VSDASCLSQWRTCDS1307+