// TODO 17-1a.01
struct tm RTC_AlarmStruct;
volatile int8_t RTC_IsAlarm = 0;
void RTC_AlarmCallback( RTC_CLOCK_INT_MASK intCause, uintptr_t context )
{
    if( intCause & RTC_CLOCK_INT_MASK_ALARM )
        RTC_IsAlarm = 1;
}


// TODO 17-1a.02
    RTC_RTCCCallbackRegister( RTC_AlarmCallback, 0 );
    RTC_AlarmStruct = RTC_TimeStruct;
    RTC_AlarmStruct.tm_sec = RTC_AlarmStruct.tm_sec + 10;
    RTC_RTCCAlarmSet( &RTC_AlarmStruct, RTC_ALARM_MASK_YYMMDDHHMMSS );

// TODO 17-1a.03
            sprintf( (char *)USARTRTxBuffer, "%02d:%02d:%02d %s", Hour, Minute, Second, (RTC_IsAlarm?"!!Alarm!!":"") );

