与非网论坛

标题: ATMEL SAM-4S Xplained之RTC实时时钟程序 [打印本页]

作者: QQ哥    时间: 2014-8-22 17:21
标题: ATMEL SAM-4S Xplained之RTC实时时钟程序

                SAM-4S Xplained评估套件是一款基于Atmel公司SAM4S16微控制器的硬件评估平台。该套件提供了大范围的特性,使得Atmel的SAM4S16用户可以马上使用SAM4S16外围设备进行开发。
        开发环境用的是ATMEL        官方的Atmel Studio 6.0 ,新开发板用官方的开发软件就是方便,因为有现成的例程可以测试,在后期的慢慢熟练后可以转用其他的开发软件比如MDK,还是不错的体验,毕竟这是用的很大众化的一款软件!

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

             打开界面

       

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

       

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

        增加LED的程序方法如下。

       

        复制GPIO文件夹到如下路径

       

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

        然后在工程文件夹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("       
                Menu:       
                ""  t - Set time       
                ""  d - Set date       
                ""  i - Set time alarm       
                ""  m - Set date alarm");#if ((SAM3S8) || (SAM3SD8) || (SAM4S))puts("  w - Generate Waveform");#endifif (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);        //置低电平}       
                编译下载后,就可以实现开始所说的功能了!       

                主程序       

                        





欢迎光临 与非网论坛 (https://www.eefocus.com/forum/) Powered by Discuz! X3.5