BOOL API_SetRTCC(BYTE _Year, BYTE _Month, BYTE _Day, BYTE _Hour, BYTE _Minute, BYTE _Second)
{
RTCC_STRUCT_TIME StrucTime;
RTCC_STRUCT_DATE StrucDate;
BYTE Dummy = 0;
StrucDate.Year = _Year;
StrucDate.Month = _Month;
StrucDate.Day = _Day;
StrucTime.Hour = _Hour;
StrucTime.Minute = _Minute;
StrucTime.Second = _Second;
StrucTime.Days = RTCC_SDateToTStampDate( StrucDate );
RtccSw.Date = RTCC_TStampDateToSDate( StrucTime.Days );
RtccSw.Time = StrucTime;
StrucTime.Thousandth = 0;
#if defined(RTCC_SW_DISABLE)
EECON2 = 0x55;
EECON2 = 0xaa;
RTCWREN = 1;
RTCEN = 1;
RTCPTR0 = 1;
RTCPTR1 = 1;
RTCVALL = (RtccSw.Date.Year%10) + ((RtccSw.Date.Year/10)<<4);
RTCPTR0 = 0;
RTCPTR1 = 1;
RTCVALL = (RtccSw.Date.Day%10) + ((RtccSw.Date.Day/10)<<4);
RTCVALH = (RtccSw.Date.Month%10) + ((RtccSw.Date.Month/10)<<4);
RTCPTR0 = 1;
RTCPTR1 = 0;
RTCVALL = (RtccSw.Time.Hour%10) + ((RtccSw.Time.Hour/10)<<4);
RTCVALH = (RtccSw.Date.DayOfWeek%10) + ((RtccSw.Date.DayOfWeek/10)<<4);
RTCPTR0 = 0;
RTCPTR1 = 0;
RTCVALL = (RtccSw.Time.Second%10) + ((RtccSw.Time.Second/10)<<4);
RTCVALH = (RtccSw.Time.Minute%10) + ((RtccSw.Time.Minute/10)<<4);
EECON2 = 0x55;
EECON2 = 0xaa;
RTCWREN = 0;
#endif
return ERR_OK;
}