1*10465441SEvalZero /*
2*10465441SEvalZero * File : rtc_test.c
3*10465441SEvalZero * This file is part of RT-Thread RTOS
4*10465441SEvalZero * COPYRIGHT (C) 2017, RT-Thread Development Team
5*10465441SEvalZero *
6*10465441SEvalZero * This program is free software; you can redistribute it and/or modify
7*10465441SEvalZero * it under the terms of the GNU General Public License as published by
8*10465441SEvalZero * the Free Software Foundation; either version 2 of the License, or
9*10465441SEvalZero * (at your option) any later version.
10*10465441SEvalZero *
11*10465441SEvalZero * This program is distributed in the hope that it will be useful,
12*10465441SEvalZero * but WITHOUT ANY WARRANTY; without even the implied warranty of
13*10465441SEvalZero * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14*10465441SEvalZero * GNU General Public License for more details.
15*10465441SEvalZero *
16*10465441SEvalZero * You should have received a copy of the GNU General Public License along
17*10465441SEvalZero * with this program; if not, write to the Free Software Foundation, Inc.,
18*10465441SEvalZero * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*10465441SEvalZero *
20*10465441SEvalZero * Change Logs:
21*10465441SEvalZero * Date Author Notes
22*10465441SEvalZero * 2018-01-15 Liu2guang the first version.
23*10465441SEvalZero */
24*10465441SEvalZero #include <rtthread.h>
25*10465441SEvalZero #include <rtdevice.h>
26*10465441SEvalZero
rtc_test(void)27*10465441SEvalZero int rtc_test(void)
28*10465441SEvalZero {
29*10465441SEvalZero uint8_t i;
30*10465441SEvalZero time_t now;
31*10465441SEvalZero
32*10465441SEvalZero rt_err_t ret = RT_EOK;
33*10465441SEvalZero
34*10465441SEvalZero rt_kprintf("[RTC Test]RTC Test Start...\n");
35*10465441SEvalZero rt_thread_delay(RT_TICK_PER_SECOND);
36*10465441SEvalZero rt_kprintf("[RTC Test]Set RTC 2017-04-01 12:30:46\n\n");
37*10465441SEvalZero rt_thread_delay(RT_TICK_PER_SECOND);
38*10465441SEvalZero
39*10465441SEvalZero ret = set_date(2017, 4, 1);
40*10465441SEvalZero if(ret != RT_EOK)
41*10465441SEvalZero {
42*10465441SEvalZero rt_kprintf("[RTC Test]Set RTC Date failed\n");
43*10465441SEvalZero return RT_ERROR;
44*10465441SEvalZero }
45*10465441SEvalZero
46*10465441SEvalZero rt_thread_delay(RT_TICK_PER_SECOND);
47*10465441SEvalZero
48*10465441SEvalZero ret = set_time(12, 30, 46);
49*10465441SEvalZero if(ret != RT_EOK)
50*10465441SEvalZero {
51*10465441SEvalZero rt_kprintf("[RTC Test]Set RTC Time failed\n");
52*10465441SEvalZero return RT_ERROR;
53*10465441SEvalZero }
54*10465441SEvalZero
55*10465441SEvalZero rt_thread_delay(RT_TICK_PER_SECOND);
56*10465441SEvalZero
57*10465441SEvalZero for(i = 0; i < 10; i++)
58*10465441SEvalZero {
59*10465441SEvalZero rt_kprintf("[RTC Test]Read RTC Date and Time: ");
60*10465441SEvalZero now = time(RT_NULL);
61*10465441SEvalZero rt_kprintf("%s", ctime(&now));
62*10465441SEvalZero
63*10465441SEvalZero rt_thread_delay(RT_TICK_PER_SECOND);
64*10465441SEvalZero }
65*10465441SEvalZero
66*10465441SEvalZero rt_kprintf("\n");
67*10465441SEvalZero
68*10465441SEvalZero return RT_EOK;
69*10465441SEvalZero }
70*10465441SEvalZero #ifdef RT_USING_FINSH
71*10465441SEvalZero #include <finsh.h>
72*10465441SEvalZero FINSH_FUNCTION_EXPORT(rtc_test, rtc drive test. e.g: rtc_test());
73*10465441SEvalZero MSH_CMD_EXPORT(rtc_test, rtc drive test. e.g: rtc_test());
74*10465441SEvalZero #endif
75