//************************************************** // 日付と時刻を返すコールバック関数 //************************************************** void SD_DateTime(uint16_t *date, uint16_t *time) { uint16_t year = 2000; uint8_t month = 1, day = 1, hour = 0, minute = 0, second = 0; RTC_TIMETYPE timertc; if(rtc_get_time(&timertc)){ //year = timertc.year + 2000; year = timertc.year; month = timertc.mon; day = timertc.day; hour = timertc.hour; minute = timertc.min; second = timertc.second; } // FAT_DATEマクロでフィールドを埋めて日付を返す *date = FAT_DATE(year, month, day); // FAT_TIMEマクロでフィールドを埋めて時間を返す *time = FAT_TIME(hour, minute, second); }
.Unicode12 = 0, .Unicode13 = 0, } }, /* MSDOS file entry for the virtual Firmware image. */ [DISK_FILE_ENTRY_FLASH_MSDOS] = { .MSDOS_File = { .Filename = "FLASH ", .Extension = "BIN", .Attributes = 0, .Reserved = {0}, .CreationTime = FAT_TIME(1, 1, 0), .CreationDate = FAT_DATE(14, 2, 1989), .StartingCluster = 2, .FileSizeBytes = FLASH_FILE_SIZE_BYTES, } }, [DISK_FILE_ENTRY_EEPROM_LFN] = { .VFAT_LongFileName = { .Ordinal = 1 | FAT_ORDINAL_LAST_ENTRY, .Attribute = FAT_FLAG_LONG_FILE_NAME, .Reserved1 = 0, .Reserved2 = 0, .Checksum = FAT_CHECKSUM('E','E','P','R','O','M',' ',' ','B','I','N'),
// // ファイルタイムスタンプコールバック関数 // void dateTime(uint16_t* date, uint16_t* time) { *date = FAT_DATE(2016, 5, 1); *time = FAT_TIME(12, 0, 0); }
void Time_SdTime(uint16_t *date, uint16_t *time){ tm_elems cur; Time_TimeFromUnix(&cur, RTC_MostRecentTime); *date = FAT_DATE(cur.year+2000, cur.month, cur.date); *time = FAT_TIME(cur.hours, cur.minutes, cur.seconds); }
void SDCard_FileHandler::dateTime(uint16_t* date, uint16_t* time) { *date = FAT_DATE(Time.year(), Time.month(), Time.day()); // return date using FAT_DATE macro to format fields *time = FAT_TIME(Time.hour(), Time.minute(), Time.second()); // return time using FAT_TIME macro to format fields }