本帖最后由 QQ哥 于 2013-1-30 00:14 编辑
ATMEL SAM-4S Xplained之RTC实时时钟程序 开发环境用的是ATMEL官方的Atmel Studio 6.0 ,新开发板用官方的开发软件就是方便,因为有现成的例程可以测试,在后期的慢慢熟练后可以转用其他的开发软件比如MDK,还是不错的体验的,毕竟这是用的很大众化的一款软件! 本次讲解的是SAM4S Xplained 板子上跑得RTC例程程序,新加两颗LED闪灭,可观察程序是否正常启动,一般是没问题的。。。 打开界面 下载到板子后,通过串口调试软件,可以使用,配置界面如下,打开电脑的设备管理器,我的是COM4 同时板子上的LED0常亮,LED1隔一秒闪灭一次。 增加LED的程序方法如下。 复制GPIO文件夹到如下路径 我的是D盘,路径就是D:\My Documents\Atmel Studio\RTC_EXAMPLE1\RTC_EXAMPLE1\src\asf\common\services\gpio。 然后在工程文件夹RTC_EXAMPLE1上右键打开 找到Directories,单击,这是添加*.h文件的地方,不多说,添加此项 然后在刷新显示程序里加上此句 /**
/**
* \刷新当前显示.
*/
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("\n\rMenu:\n\r"
" t - Set time\n\r"
" d - Set date\n\r"
" i - Set time alarm\n\r"
" m - Set date alarm\r");
#if ((SAM3S8) || (SAM3SD8) || (SAM4S))
puts(" w - Generate Waveform\r");
#endif
if (gs_ul_alarm_triggered) {
puts(" c - Clear alarm notification\r");
}
printf("\n\r");
gs_ul_menu_shown = 1;
}
/*更新当前时间和日期 */
puts("\r");
printf(" [Time/Date: %02u:%02u:%02u, %02u/%02u/%04u %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); //置低电平
}
编译下载后,就可以实现开始所说的功能了! 主程序
Atmel Studio.zip
(6.6 MB, 下载次数: 42)
|