ds13xx_test.c

来自「fresscale MX21 RTC实时种编程」· C语言 代码 · 共 58 行

C
58
字号
#include <stdio.h>#include <fcntl.h>#include <stdlib.h>#include <sys/types.h>#include <sys/ioctl.h>#include <linux/rtc.h>int main(int argc, char *argv[]){	int fd;	struct rtc_time dt;	if(argc < 2){		printf("usage:argc ds13xx_test [read|write]\n");		return;	}	fd = open("/dev/ds1337", O_RDWR);	if(fd < 0){		printf("open device ds1337 error\n");		return;	}	if(strncmp(argv[1], "read", 4)==0){		printf("======read from ds1337 rtc=======\n");		ioctl(fd, RTC_RD_TIME, &dt);		printf("ds1307_read_datetime: year = %d\n", dt.tm_year+2000);		printf("ds1307_read_datetime: mon  = %d\n", dt.tm_mon); 		printf("ds1307_read_datetime: mday = %d\n", dt.tm_mday);		printf("ds1307_read_datetime: hour = %d\n", dt.tm_hour);		printf("ds1307_read_datetime: min  = %d\n", dt.tm_min); 		printf("ds1307_read_datetime: sec  = %d\n", dt.tm_sec); 	}	if(strncmp(argv[1], "write", 5)==0){		printf("=========set ds1337 rtc=============\n");		memset(&dt, 0, sizeof(struct rtc_time));		dt.tm_year = 2007-2000;		dt.tm_mon  = 11;		dt.tm_mday = 15;		dt.tm_hour = 10;		dt.tm_min  = 40;		dt.tm_sec  = 29;		ioctl(fd, RTC_SET_TIME, &dt);		printf("ds1307_set_datetime: tm_year = %d\n", dt.tm_year+1970);		printf("ds1307_set_datetime: tm_mon  = %d\n", dt.tm_mon); 		printf("ds1307_set_datetime: tm_mday = %d\n", dt.tm_mday);		printf("ds1307_set_datetime: tm_hour = %d\n", dt.tm_hour);		printf("ds1307_set_datetime: tm_min  = %d\n", dt.tm_min); 		printf("ds1307_set_datetime: tm_sec  = %d\n", dt.tm_sec); 	}	close(fd);	return;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?