Soldered SD Card Arduino Library 1.0.0
Easily read and write files to and form the SD card breakout! A fork of the original SDFat library by Bill Greiman.
Loading...
Searching...
No Matches
FsDateTime.h
Go to the documentation of this file.
1
25#ifndef FsDateTime_h
26#define FsDateTime_h
27#include "CompileDateTime.h"
28#include "SysCall.h"
29#include <stdint.h>
30
32#define FAT_DATE(y, m, d) FS_DATE(y, m, d)
33
35#define FAT_TIME(h, m, s) FS_TIME(h, m, s)
36
38namespace FsDateTime
39{
41extern void (*callback)(uint16_t *date, uint16_t *time, uint8_t *ms10);
43extern void (*callback2)(uint16_t *date, uint16_t *time);
45void clearCallback();
72void setCallback(void (*dateTime)(uint16_t *date, uint16_t *time));
106void setCallback(void (*dateTime)(uint16_t *date, uint16_t *time, uint8_t *ms10));
107} // namespace FsDateTime
108
116static inline uint16_t FS_DATE(uint16_t year, uint8_t month, uint8_t day)
117{
118 year -= 1980;
119 return year > 127 || month > 12 || day > 31 ? 0 : year << 9 | month << 5 | day;
120}
126static inline uint16_t FS_YEAR(uint16_t fatDate)
127{
128 return 1980 + (fatDate >> 9);
129}
135static inline uint8_t FS_MONTH(uint16_t fatDate)
136{
137 return (fatDate >> 5) & 0XF;
138}
144static inline uint8_t FS_DAY(uint16_t fatDate)
145{
146 return fatDate & 0X1F;
147}
155static inline uint16_t FS_TIME(uint8_t hour, uint8_t minute, uint8_t second)
156{
157 return hour > 23 || minute > 59 || second > 59 ? 0 : hour << 11 | minute << 5 | second >> 1;
158}
164static inline uint8_t FS_HOUR(uint16_t fatTime)
165{
166 return fatTime >> 11;
167}
173static inline uint8_t FS_MINUTE(uint16_t fatTime)
174{
175 return (fatTime >> 5) & 0X3F;
176}
184static inline uint8_t FS_SECOND(uint16_t fatTime)
185{
186 return 2 * (fatTime & 0X1F);
187}
188char *fsFmtDate(char *str, uint16_t date);
189char *fsFmtTime(char *str, uint16_t time);
190char *fsFmtTime(char *str, uint16_t time, uint8_t sec100);
191char *fsFmtTimeZone(char *str, int8_t tz);
192size_t fsPrintDate(print_t *pr, uint16_t date);
193size_t fsPrintDateTime(print_t *pr, uint16_t date, uint16_t time);
194size_t fsPrintDateTime(print_t *pr, uint32_t dateTime);
195size_t fsPrintDateTime(print_t *pr, uint32_t dateTime, uint8_t s100, int8_t tz);
196size_t fsPrintTime(print_t *pr, uint16_t time);
197size_t fsPrintTime(print_t *pr, uint16_t time, uint8_t sec100);
198size_t fsPrintTimeZone(print_t *pr, int8_t tz);
199#endif // FsDateTime_h
char * fsFmtDate(char *str, uint16_t date)
Definition FsDateTime.cpp:69
size_t fsPrintDate(print_t *pr, uint16_t date)
Definition FsDateTime.cpp:120
static uint8_t FS_SECOND(uint16_t fatTime)
Definition FsDateTime.h:184
static uint16_t FS_YEAR(uint16_t fatDate)
Definition FsDateTime.h:126
size_t fsPrintTime(print_t *pr, uint16_t time)
Definition FsDateTime.cpp:181
static uint16_t FS_DATE(uint16_t year, uint8_t month, uint8_t day)
Definition FsDateTime.h:116
static uint8_t FS_HOUR(uint16_t fatTime)
Definition FsDateTime.h:164
static uint8_t FS_MONTH(uint16_t fatDate)
Definition FsDateTime.h:135
size_t fsPrintTimeZone(print_t *pr, int8_t tz)
Definition FsDateTime.cpp:199
static uint16_t FS_TIME(uint8_t hour, uint8_t minute, uint8_t second)
Definition FsDateTime.h:155
size_t fsPrintDateTime(print_t *pr, uint16_t date, uint16_t time)
Definition FsDateTime.cpp:139
char * fsFmtTime(char *str, uint16_t time)
Definition FsDateTime.cpp:78
static uint8_t FS_DAY(uint16_t fatDate)
Definition FsDateTime.h:144
static uint8_t FS_MINUTE(uint16_t fatTime)
Definition FsDateTime.h:173
char * fsFmtTimeZone(char *str, int8_t tz)
Definition FsDateTime.cpp:92
SysCall class.
Print print_t
Definition SysCall.h:66
Definition FsDateTime.cpp:37
void(* callback)(uint16_t *date, uint16_t *time, uint8_t *ms10)
Definition FsDateTime.cpp:38
void(* callback2)(uint16_t *date, uint16_t *time)
Definition FsDateTime.cpp:39
void clearCallback()
Definition FsDateTime.cpp:40
void setCallback(void(*dateTime)(uint16_t *date, uint16_t *time))
Definition FsDateTime.cpp:44