使用PKE8720DF-C13-F10(AMB26)开发板——每秒打印时间信息(基于RTC实验)

目录

基于RTC实验每秒打印时间信息

(1)材料准备

(2)代码修改

(3)使用Tera Term串口调试工具来打印结果


RTC:Real Time Clock,实时时钟,能够提供日历和闹钟的功能。

RTC是一个独立的二进码十进制格式(BCD码)定时器/计数器。其中一个32位寄存器包括BCD格式表示的seconds、minutes、hours(12或24小时制),另一个32位寄存器包括二进制格式表示的days。BCD码是用4位二进制数来表示1位十进制数中的0~9这10个数码。另外可以自动将月份的天数计为28、29(闰年)、30、31天以及夏令时补偿。

只要工作电压维持在运行范围,不管在运行模式、低功耗模式还是重置情况下,RTC都不会停止。

通过之前写的使用PKE8720DF-C13-F10(AMB26)开发板——周期性点亮LED灯这篇文章,了解PKE8720DF-C13-F10(AMB26)开发板的特性、Linux编译环境准备、SDK code下载与编译生成bin文件、使用自带Image tool将bin文件烧到板子里面,我们可以很方便用PKE8720DF-C13-F10(AMB26)开发板进行二次开发。

本文主要说明如何使用开发板的RTC功能来达到每秒计时的目的,实验结果是通过每秒打印时间信息给出,方便使用者理解。

基于RTC实验每秒打印时间信息

(1)材料准备

  • 1 块 PKE8720DF-C13-F10开发板
  • 1 根 USB转type-C数据线

(2)代码修改

本实验的代码位于~\ambd_sdk\project\realtek_amebaD_va0_example\example_sources\\RTC\raw\rtc\src\main.c,将main()函数的最后几行修改如下:

		DiagPrintf("Time as seconds since January 1, 1970 = %d\n", seconds);
		DiagPrintf("Time as a basic string = %s", ctime(&seconds));
		DiagPrintf("Time as a custom formatted string = %04d-%02d-%02d %02d:%02d:%02d\n\n", 
			timeinfo->tm_year+1900, timeinfo->tm_mon+1, timeinfo->tm_mday, timeinfo->tm_hour,
			timeinfo->tm_min,timeinfo->tm_sec);

 修改之后替换/project/realtek_amebaD_va0_example/src/src_hp里面的main.c,make all生成3个bin文件:

km0_boot_all.bin

km4_boot_all.bin

km0_km4_image2.bin

之后download image到板子。

(3)使用Tera Term串口调试工具来打印结果

用USB转type-C数据线将开发板连接到PC上,显示为COM15口

 打开Tera Term,进行如下setting,

 

 按板子上的RESET按键,这时候可以看到Tera Term开始打印时间相关的信息,并且按秒递增,如果给板子一直供电,时间相关的信息会一直打印。

第一行log打印的seconds为1256729737也即与42行赋值的初始值一样,这是从1970年1月1日0分0秒经过的总秒数,换算成实际时间是2009-10-28 11:35:37,这也体现在第二行打印的log上,这段字符串是由ctime()函数生成。

 第三行log打印的是结构体struct tm *timeinfo里面的时间信息,可以网上搜索struct tm结构体的具体作用,里面的成员有两个需要注意的:

a) int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */ 

b) int tm_year; /* 年份,其值等于实际年份减去1900 */

所以在代码中有进行相应的修改以便更符合实际情况。

实验中的三行log反应的是同一时间信息,并且可以看到是按秒递增,结果符合预期!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值