char ssr[500]="Good Morning , ";
If you can't count, you really should let the compiler count for you. Which Arduino are you using? Can you really afford to waste nearly 1/4 of the memory, assuming a 328-based Arduino, for this string?
sprintf( buffer, "Time = %02d:%02d:%02d, ", \
bcd2bin( rtc.h24.Hour10, rtc.h24.Hour), \
bcd2bin( rtc.Minutes10, rtc.Minutes), \
bcd2bin( rtc.Seconds10, rtc.Seconds));
The backslashes are not necessary, and distract from the code.