i tried simulating your code, without the servo and keyboard stuff and a simulated RTC class
22:15:16-22:15:20-0
22:15:17-22:15:20-0
22:15:18-22:15:20-0
22:15:19-22:15:20-0
IT WORKS!!!!
22:15:20-22:15:20-1
22:15:21-22:15:20-0
22:15:22-22:15:20-0
22:15:23-22:15:20-0
#define MyHW
#ifdef MyHW
class DS1302 {
public:
int hour;
int min;
int sec;
DS1302 (int a, int b, int c) {
hour = 22;
min = 15;
sec = 10;
}
String getTimeStr (void) {
static char s [40];
sprintf (s, "%02d:%02d:%02d", hour, min, sec++);
return s;
}
};
#else
#include <DS1302.h>
#endif
String feedTime = "22:15:20";
boolean feed = true;
DS1302 rtc(4, 3, 5);
void setup(){
Serial.begin(9600);
}
void loop(){
String t = rtc.getTimeStr();
if ( t.equals(feedTime)&& feed==true)
{
Serial.println("IT WORKS!!!!");
feed = false;
}
Serial.print(t);
Serial.print("-");
Serial.print(feedTime);
Serial.print("-");
delay(50);
Serial.print(t.equals(feedTime));
Serial.println();
delay(1000);
}