void Get_AlarmTimeString(char *TimeString) { char timeBuffer[9]; volatile uint32 scroll, sec, min, hour; sec = 0u; min = 0u; hour = 0u; if(AlarmTime.status == 1) { RTC_GetAlarmDateAndTime(&AlarmTime); TimeStruct.Time = RTC_GetTime(); min = RTC_GetMinutes(AlarmTime.time); hour = RTC_GetHours(AlarmTime.time); if(RTC_GetSecond(AlarmTime.time) < RTC_GetSecond(TimeStruct.Time)) { if(min) { min--; sec = 59 - (RTC_GetSecond(TimeStruct.Time) - RTC_GetSecond(AlarmTime.time)); } else { hour--; min = 59; sec = 59 - (RTC_GetSecond(TimeStruct.Time) - RTC_GetSecond(AlarmTime.time)); } } else { sec = (RTC_GetSecond(AlarmTime.time) - RTC_GetSecond(TimeStruct.Time)); } if(min < RTC_GetMinutes(TimeStruct.Time)) { hour--; min = 59 - (RTC_GetMinutes(TimeStruct.Time) - min); } else { min = min - RTC_GetMinutes(TimeStruct.Time); } hour = hour - RTC_GetHours(TimeStruct.Time); } sprintf(timeBuffer, "%02lu:%02lu:%02lu", hour, min, sec); for(scroll = 0; scroll < 9; scroll++) { TimeString[scroll] = timeBuffer[scroll]; } }
/******************************************************************************* * Function name: DisplayPrintfRealTime ******************************************************************************** * * Summary: * print real time from position row = 1, column = 0 * *******************************************************************************/ void DisplayRealTime(void) { uint32_t time; time = RTC_GetTime(); sprintf(buff, "%02lu:%02lu:%02lu ", RTC_GetHours(time),RTC_GetMinutes(time), RTC_GetSecond(time)); LCD_Position(1,0); LCD_PrintString(buff); }
void Get_RealTimeString(char *TimeString) { char timeBuffer[9]; uint8 scroll = 0; TimeStruct.Time = RTC_GetTime(); sprintf(timeBuffer, "%02lu:%02lu:%02lu", RTC_GetHours(TimeStruct.Time), RTC_GetMinutes(TimeStruct.Time), RTC_GetSecond(TimeStruct.Time)); for(scroll = 0; scroll < 9; scroll++) { TimeString[scroll] = timeBuffer[scroll]; } }
/******************************************************************************* * Function Name: WriteSkierResult ******************************************************************************** * * Summary: * Start log system(mount fat) * * Parametrs: * *data - pointer from result skiers * Return: * resultF - result mount FAT system (from enum FRESULT) * *******************************************************************************/ uint32_t WriteSkierResult(skierDB_El *data) { uint8 resultF; uint count; uint32_t nameYear; uint32_t nameMonth; uint32_t nameDay; uint32_t date; /*get date from RTC*/ date = RTC_GetDate(); nameYear = RTC_GetYear(date)-2000; nameMonth = RTC_GetMonth(date); nameDay = RTC_GetDay(date); /*Construct name of file in format dd_mm_yyyy*/ sprintf(nameFile,"%02d_%02d_%d.txt",nameDay,nameMonth,nameYear); createFlag = 0; resultF = f_open(&fileO, nameFile, FA_WRITE | FA_OPEN_APPEND, &createFlag); if(resultF == RES_OK) { /*Construct save data*/ char start[LEN_DATA]; char finish[LEN_DATA]; char result[LEN_DATA]; char writeData[LEN_DATA_ALL]; RTC_DATE_TIME time; /*read unix time*/ RTC_UnixToDateTime(&time, data->unixStartSkier, RTC_24_HOURS_FORMAT); sprintf(start, "\t\t%02lu:%02lu:%02lu:%03u",RTC_GetHours(time.time),RTC_GetMinutes(time.time),RTC_GetSecond(time.time),data->millsStartSkier); RTC_UnixToDateTime(&time, data->unixFinishSkier, RTC_24_HOURS_FORMAT); sprintf(finish, "\t\t%02lu:%02lu:%02lu:%03u",RTC_GetHours(time.time),RTC_GetMinutes(time.time),RTC_GetSecond(time.time),data->millsFinishSkier); sprintf(result, "\t\t%02lu:%03u",(uint32)data->secondsWay,data->millsWay); sprintf(writeData,"\n\r%d%s%s%s\n\r",position, start, finish, result); if((position == 1) || (createFlag == 1)) { /*write new "cap"*/ uint32_t tmpTime ; tmpTime = RTC_GetTime(); f_printf(&fileO,"\r\nSystem started %02d:%02d:%02d\n\r", RTC_GetHours(tmpTime),RTC_GetMinutes(tmpTime),RTC_GetSecond(tmpTime)); f_printf(&fileO,"--------------------------------------------------\n\r"); f_printf(&fileO,"NUM\t\tSTART\t\t\tFINISH\t\t\tRESULT\n\r"); f_printf(&fileO,"--------------------------------------------------\n\r"); } /*write data*/ resultF = f_write(&fileO, writeData, strlen(writeData),&count); resultF = f_close(&fileO); position++; } return resultF; }