[Atmel] mbed环境下SAMR21开发板6:RTC

[复制链接]
 楼主| ddllxxrr 发表于 2016-2-13 08:53 | 显示全部楼层 |阅读模式
这个mbed的RTC,需要有一个问题注意,就是mbed已经定义了tm结构。也就是说用户不用再定义什么时间的结构体了。
下面这个程序是每一秒打印一下时间,以秒为单位递增。

程序如下:

  1. include "mbed.h"

  2. Serial pc(USBTX,USBRX);



  3. int main() {

  4.     tm t;

  5.     t.tm_sec = 00;    // 0-59

  6.     t.tm_min = 9;    // 0-59

  7.     t.tm_hour = 12;   // 0-23

  8.     t.tm_mday = 21;   // 1-31

  9.     t.tm_mon = 3;     // 0-11

  10.     t.tm_year = 114;  // year since 1900

  11.     // Set RTC time today

  12.     set_time(mktime(&t));

  13.     while(1) {

  14.         time_t seconds = time(NULL);

  15.         char day[16];

  16.         strftime(day, 16, "strftime:%Y/%m/%d %a ", localtime(&seconds));

  17.         pc.printf("%s ", day);

  18.         char time[16];

  19.         strftime(time, 16, "%H:%M:%S\n", localtime(&seconds));

  20.         pc.printf("%s ", time);

  21.         pc.printf("ctime:%s \n ", ctime(&seconds));

  22.         wait(1.0);

  23.     }



  24. }

运行结果如下:



相关的函数即方法如下:

类名
方法
用途
全局函数
time_t time(time_t *timer)
返回当前的计数时间,返回值与timer相同,可以传入NULL,表示只需要返回值
void set_time(time_t t)
设置当前时间
time_t mktime((struct tm *_timeptr))
把tm类型转换成time_t类型
struct tm* localtime((const time_t *_timer))
把time_t类型转换成tm类型
char      *ctime((const time_t *_time))
把time_t类型转换成字符串类型
size_t  strftime((char *_s, size_t _maxsize, const char *_fmt, const struct tm *_t))
把tm类型按照给定的格式转换成字符串类型

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

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

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2403

主题

6994

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部
个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2403

主题

6994

帖子

68

粉丝
快速回复 在线客服 返回列表 返回顶部