Incremento ora con pulsante

Ciao Pablos
Ho provato come dici te con ultima_ora ecc. però riesco ad incrementare solo una volta .
Potresti sistemarmi lo sketch che riporto qui sotto , cosi capisco dove sbaglio ?

#include <swRTC.h>
swRTC rtc;
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int BUTTON = 6;
//int statoButton = 0; // stato del pulsante (inizialmente non premuto)
//int lastStatoButton = 0; // ultimo stato del pulsante (per ora non premuto)
//int countButton = 0; // Conteggio del bottone
int ultima_ora = 0;
int ultimo_min = 0;
int ultimo_sec = 0;

void setup() {
delay(2000);
rtc.stopRTC();
rtc.setTime(ultima_ora, ultimo_min, ultimo_sec);
rtc.startRTC();

lcd.begin(16, 2);
pinMode(BUTTON, INPUT); // imposta il pin digitale come input
}

void loop() {

if(digitalRead(BUTTON)) {
rtc.setTime(ultima_ora +1, ultimo_min, ultimo_sec);
// Aspetto 800ms per far alzare il dito all'utente se lo tengo premuto avanza ancora
delay(800);
}

lcd.setCursor(5, 0);
lcd.print(rtc.getHours(), DEC);
lcd.print(":");
lcd.print(rtc.getMinutes(), DEC);
lcd.print(":");
lcd.print(rtc.getSeconds(), DEC);
lcd.print(" ");

}