While I was at it, I modified your SerialComm function to make it easier to use. Now it accepts three characters (one letter followed by two digits). I have not tested it, though, so I cannot guarantee that it works properly, or even works at all.
void SerialComm() {
// first character - type of data (ASCII letter 'A' through 'G')
// second character - tens digit (ASCII digit '0' through '9')
// third character - ones digit (ASCII digit '0' through '9')
if (Serial.available() > 0) {
byte receivedCommand;
receivedCommand = Serial.read(); //read first letter
if (receivedCommand < 90) {
//received data is less than 90 (letter Z)
delay(20); // wait for two digits
// maybe we don't need to wait this long?
byte receivedDataTens;
receivedDataTens = Serial.read();
receivedDataTens -= 48; // ASCII code for '0' is 48
byte receivedDataOnes;
receivedDataOnes = Serial.read();
receivedDataOnes -= 48; // ASCII code for '0' is 48
byte receivedData;
receivedData = (receivedDataTens * 10) + receivedDataOnes;
switch (receivedCommand) {
case 65:
//year 65 = A
year = receivedData;
lc.setLed(3, 7, 0, true); //show setting dot
break;
case 66:
//month 66 = B
month = receivedData;
lc.setLed(3, 7, 1, true); //show setting dot
break;
case 67:
//dayOfMonth 67 = C
dayOfMonth = receivedData;
lc.setLed(3, 7, 2, true); //show setting dot
break;
case 68:
//hour 68 = D
hour = receivedData;
lc.setLed(3, 7, 3, true); //show setting dot
break;
case 69:
//minute 69 = E
minute = receivedData;
lc.setLed(3, 7, 4, true); //show setting dot
break;
case 70:
//second 70 = F
second = receivedData;
lc.setLed(3, 7, 5, true); //show setting dot
break;
case 71:
//dayofWeek 71 = G
dayOfWeek = receivedData;
lc.setLed(3, 7, 6, true); //show setting dot
break;
default:
// if we're here, then we got a garbage command
Serial.flush();
return;
}
SetRtc(second, minute, hour, dayOfWeek, dayOfMonth, month, year);
}
//spláchnout buffer do hajzlu
Serial.flush();
}
}