ATMEL SAM-4S Xplained之RTC实时时钟程序

作者: QQ哥
上传时间为: 2014-08-22 05:21 PM

SAM-4S Xplained评估套件是一款基于Atmel公司SAM4S16微控制器的硬件评估平台。该套件提供了大范围的特性,使得Atmel的SAM4S16用户可以马上使用SAM4S16外围设备进行开发。

开发环境用的是ATMEL 官方的Atmel Studio 6.0 ,新开发板用官方的开发软件就是方便,因为有现成的例程可以测试,在后期的慢慢熟练后可以转用其他的开发软件比如MDK,还是不错的体验,毕竟这是用的很大众化的一款软件!

本次讲解的是 SAM4S Xplained 板子上跑得RTC例程程序,新加两颗LED闪灭,可观察程序是否正常启动,一般是没问题的。。。

     打开界面

1.jpg

下载到板子后,通过串口调试软件,可以使用,配置界面如下,打开电脑的设备管理器,我的是COM4

2.jpg

同时板子上的LED0常亮,LED1隔一秒闪灭一次。

增加LED的程序方法如下。

3.jpg

复制GPIO文件夹到如下路径

4.jpg

我的是D盘,路径就是D:My DocumentsAtmel StudioRTC_EXAMPLE1RTC_EXAMPLE1srcasfcommonservicesgpio。

然后在工程文件夹RTC_EXAMPLE1上右键打开

5.jpg

找到Directories,单击,这是添加*.h文件的地方,不多说,添加此项

6.jpg

7.jpg

然后在刷新显示程序里加上此句

/**

/** * 刷新当前显示. */ static void refresh_display(void) { uint32_t ul_hour, ul_minute, ul_second; uint32_t ul_year, ul_month, ul_day, ul_week;

gpio_set_pin_low(LED0_GPIO);       //置低电平 gpio_set_pin_high(LED1_GPIO);    //置高电平

if (gs_ul_state != STATE_MENU) { /* 非菜单显示模式, 而是设置模式. */ } else { /* 重新得到时间和日期 */ rtc_get_time(RTC, &ul_hour, &ul_minute, &ul_second); rtc_get_date(RTC, &ul_year, &ul_month, &ul_day, &ul_week);

/* 显示当前 */ if (!gs_ul_menu_shown) { puts("

Menu:

" "  t - Set time

" "  d - Set date

" "  i - Set time alarm

" "  m - Set date alarm "); #if ((SAM3S8) || (SAM3SD8) || (SAM4S)) puts("  w - Generate Waveform "); #endif if (gs_ul_alarm_triggered) { puts("  c - Clear alarm notification "); }

printf("

");

gs_ul_menu_shown = 1; }

/*更新当前时间和日期 */ puts(" "); printf(" [Time/Date: u:u:u, u/u/u %s ][Alarm status:%s]", ul_hour, ul_minute, ul_second, ul_month, ul_day, ul_year, gs_uc_day_names[ul_week-1], gs_ul_alarm_triggered?"Triggered!":""); } gpio_set_pin_high(LED0_GPIO);       //置高电平 gpio_set_pin_low(LED1_GPIO);        //置低电平 }

编译下载后,就可以实现开始所说的功能了!

主程序

8.jpg

全部评论 ()

创建讨论帖子

登录 后参与评论
系统提示