实时时钟实验
1 实验目的
Ø 了解实时时钟的硬件控制原理及设计方法。
Ø 掌握S3C2410X处理器的RTC模块程序设计方法。
2 实验设备
Ø 硬件:Embest EduKit-IV平台,ULINK2仿真器套件,PC机;
Ø 软件:μVision IDE for ARM集成开发环境,Windows 98/2000/NT/XP。
3 实验内容
学习和掌握Embest ARM教学实验平台中RTC模块的使用,编写应用程序,修改时钟日期及时间的设置,以及使用EMBEST ARM教学系统的串口,在超级终端显示当前系统时间。
4 实验设计
(1)时钟设置
时钟设置程序须实现时钟工作情况以及数据设置有效性检测功能。具体实现可参考示例程序设计。
(2)时钟显示
时钟参数通过实验系统串口0 输出到超级终端,显示内容包括年月日时分秒。参数以BCD 码形式传送,用户使用串口通信函数(参见串口通信实验)将参数取出显示。
* name:rtc_display
* func:display rtc value
* para:none
* ret:none
* modify:
* comment:
************************************************************************/
void rtc_display(void)
{
INT32T nTmp;
uart_printf(“\n Display current Date and time: \n”);rRTCCON = 0x01;// No reset, Merge BCD counters, 1/32768, RTC Control enable
uart_printf(“ Press any key to exit.\n”);
while(!uart_getkey())
{
while(1)
{
if(rBCDYEAR==0x99)
g_nYear = 0x1999;
else
g_nYear = 0x2000 + rBCDYEAR;
g_nMonth = rBCDMON;
g_nWeekday = rBCDDAY;
g_nDate = rBCDDATE;
g_nHour = rBCDHOUR;
g_nMin = rBCDMIN;
g_nSec = rBCDSEC;
if(g_nSec!=nTmp)// Same time is not display
{
nTmp = g_nSec;
break;
}
}
uart_printf(“ %02x:%02x:%02x %10s, %02x/%02x/%04x\r”,
g_nHour,g_nMin,g_nSec,day[g_nWeekday],g_nMonth,g_nDate,g_nYear);
}
rRTCCON = 0x0;// No reset, Merge BCD counters, 1/32768, RTC Control disable(for power consumption)
uart_printf(“\n\n Exit display.\n”);
}
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !