OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10734|回复: 6

RCT实验 Auto_Time_Set(void)函数一直不理解

[复制链接]

19

主题

52

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2013-7-9
在线时间
0 小时
发表于 2013-8-11 17:22:27 | 显示全部楼层 |阅读模式

void Auto_Time_Set(void)
{
 u8 temp[3];
 u8 i;
 u8 mon,date;
 u16 year;
 u8 sec,min,hour;
 for(i=0;i<3;i++)
     temp=COMPILED_DATE;  
 for(i=0;i<12;i++)
    if(str_cmpx((u8*)Month_Tab,temp,3))
       break; 
 mon=i+1;//得到月份
 if(COMPILED_DATE[4]==' ')
    date=COMPILED_DATE[5]-'0';
 else
    date=10*(COMPILED_DATE[4]-'0')+COMPILED_DATE[5]-'0'; 
 year=1000*(COMPILED_DATE[7]-'0')+100*(COMPILED_DATE[8]-'0')+10*(COMPILED_DATE[9]-'0')+COMPILED_DATE[10]-'0';   
 hour=10*(COMPILED_TIME[0]-'0')+COMPILED_TIME[1]-'0'; 
 min=10*(COMPILED_TIME[3]-'0')+COMPILED_TIME[4]-'0'; 
 sec=10*(COMPILED_TIME[6]-'0')+COMPILED_TIME[7]-'0'; 
 RTC_Set(year,mon,date,hour,min,sec) ;
 //printf("%d-%d-%d  %d:%d:%d\n",year,mon,date,hour,min,sec);
}

RCT实验研究两三天,这是Auto_Time_Set(void),一直看不明白。还有在主函数中有这个两个东东——_DATE__、__TIME__(const u8 *COMPILED_DATE=__DATE__;//获得编译日期
const u8 *COMPILED_TIME=__TIME__;//获得编译时间)是什么呀,是多少呀?求大侠解惑!!!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-11 19:33:42 | 显示全部楼层
不用理解了,这东西作秀的意义大于实际应用的意义.
其实就是利用编译器特点的东西,来得到当前电脑的时间,从而设置开发板时间为电脑当前时间,但是仅仅是电脑编译时刻的时间...
比如你今天编译的hex文件,明天下载,那么时间就还是编译时候的时间...所以,实际用处不是很大.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

52

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2013-7-9
在线时间
0 小时
 楼主| 发表于 2013-8-11 19:49:23 | 显示全部楼层
非常原子哥的解惑!!!呵呵,不过我还是很想知道_DATE__、__TIME__这两个东东。我猜应该是电脑编译时刻的时间,不过不是日历形式的时间,应该是对应的一串数字。还有我还是挺想知道在这个函数中void Auto_Time_Set(void)年,月,小时,分钟,秒,怎样的得到的!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-8-11 20:09:16 | 显示全部楼层
回复【3楼】给力王海潮:
---------------------------------
你用printf,把_DATE__、__TIME__打印出来看看就知道了
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

52

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
298
金钱
298
注册时间
2013-7-9
在线时间
0 小时
 楼主| 发表于 2013-8-12 09:14:54 | 显示全部楼层
按照原子哥说的,我用printf打印出了_DATE__、__TIME__,看到他们是什么了,和我想的一样,感谢原子哥!我忽然觉得串口太好用了!!!
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-8-12 13:48:04 | 显示全部楼层
__TIME__ 
__DATA__ 
__FILE__
__LINE__

这些是C标准的东西 
你从网上查查
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-8-12 13:49:30 | 显示全部楼层
http://www.wumii.com/item/LGbML0T3
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-15 05:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表