FatFS文件系统中get_fattime()函数的实现

1
2
3
4
5
6
 bit31:25 年 (0~127)(从1980 开始)
bit24:21 月 (1~12
bit20:16 日 (1~31
bit15:11 小时(0~23
bit10:5 分钟(0~59
bit4:0 秒 (0~29

函数实现:

实现1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 DWORD get_fattime (void)
{
DWORD RetVal = 0;
DWORD Temp = 0;

Temp = g_SysTime.tm_year - 1980;
RetVal = (Temp << 25);
Temp = g_SysTime.tm_mon;
RetVal |= (Temp << 21);
Temp = g_SysTime.tm_mday;
RetVal |= (Temp << 16);
Temp = g_SysTime.tm_hour;
RetVal |= (Temp << 11);
Temp = g_SysTime.tm_min;
RetVal |= (Temp << 5);
Temp = g_SysTime.tm_sec>>2;
RetVal |= (Temp);

return RetVal;
}

实现2:

1
2
3
4
5
6
7
8
9
10
 DWORD get_fattime (void)
{
return ((2010UL-1980) << 25) /* Year = 2010 */
| (11UL << 21) /* Month = 11 */
| (2UL << 16) /* Day = 2 */
| (15U << 11) /* Hour = 15 */
| (0U << 5) /* Min = 0 */
| (0U >> 1) /* Sec = 0 */
;
}
分享到: 更多
版权申明:

本站保留所有原创文章的版权,本站地址:奔跑的博客[http://www.elecbench.com]

原创文章转载时请注明出处,并添加文章所在页面的链接:http://www.elecbench.com/fatfs%e6%96%87%e4%bb%b6%e7%b3%bb%e7%bb%9f%e4%b8%adget_fattime%e5%87%bd%e6%95%b0%e7%9a%84%e5%ae%9e%e7%8e%b0/

本站所有 2010年3月4日 以后发表、未标明为“转载”的文章均是本站原创。

发表评论


(设置自己的个性头像)

*

申请属于你的免费顶级域名