Ameba Arduino: [RTL8195] SDIO – 更新SD Card里,档案的上次修改时间

材料准备

  • Ameba x 1
  • SD card or MicroSD card x 1
  • SD sniffer x 1 (optional)

范例说明

在之前的范例里,我们新增的资料夹与档案,如果在电脑上的读卡机上,可以看到它们的上次修改时间都是一样的。这是因为Ameba没有取得当下的时间资讯,所以填入的时间值是预设值。如果我们想更新上次修改时间,可以参考这个范例。
我们打​​开范例 “File” -> “Examples” -> “AmebaSdFatFs” -> “last_modified_time”
编译并上传至Ameba之后,按下Reset按钮之后,执行结果如下:
1可以看到档案的上次修改时间已被更新。
这个范例里我们并未使用一些外部取得当下时间的方式,使用者可以决定取得时间的方式(Ex. NTP, RTC, …)

程式码说明

关于SD Card初始化与新增档案的部份可以参考之前的范例
要更新档案的上次修改时间,可以使用setLastModTime()。第一个参数是档案的绝对路径,接下来的六个参数是年、月、日、时、分、秒。

fs.setLastModTime(absolute_filename, year, month, date, hour, minute, second);

取得上次的修改时间的方式也很类似,使用getLastModTime()

fs.getLastModTime(absolute_filename, &year, &month, &date, &hour, &minute, &second);