【发布时间】:2020-12-31 15:16:51
【问题描述】:
我有一个脚本可以创建一个文件,并根据系统时间生成一个时间戳,并通过该时间戳命名文件。
// Creating file name. Time stamp included. File will be sent to USB.
FILE * fp;
time_t rawtime; // Generating time stamp
char buffer[255];
time(&rawtime);
sprintf(buffer, "/mnt/usb/DAT_%s.txt", ctime(&rawtime));
但是,我想通过 I2C 从 RTC 生成时间戳。从终端,我可以轻松地从 RTC 读取时间:
$ i2cdump -y -r 0-0xF 1 0x68 b
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 51 51 21 01 14 01 17 00 00 00 00 00 00 00 1c 88 QQ!????.......??
每个寄存器对应的地方
- 00h-06h:秒、分、小时、星期几、日期、月份、年份(全部为 BCD)
所以上面的内容是 2017 年 1 月 14 日星期六 21:51:55(我希望如此)。
出于时间戳目的,打印注册表值(未格式化)就足够了。那么我可以在这个脚本中使用 i2cdump 吗?如果是,应该如何实施?我是 C 的新手,所以任何针对新手的建议都值得赞赏!
【问题讨论】:
-
您可以简单地运行
i2cdump并通过管道man popen读取其输出。