工具/软件:Code Composer Studio
您好、先生、
我在 RTC 代码方面有问题。
在"我的代码"中、"小时"、"分钟"、"秒"、"月"和"年"工作正常。 RTC 日期的设置或读取问题。
1至7和16至23日期读取写入正确。 但问题是、当我尝试在 RTC 中设置8到15或24到31日期时、它显示= Enter Date–8。
例如、如果我尝试设置9、则它显示= 9 - 8 = 1。
同样、如果我尝试设置26、则它显示= 26- 8 = 18。 等等。
软件: Code Composer Studio 5.4.0
控制器: TM4C129–ENCPDT13。
1) RTC 初始化功能。 仅1个定时调用。
void Initialize_RTC (void)
{
SysCtlPeripheralEnable (SYSCTL_Periph_HIBERNATE);
HibernateEnableExpClk (g_ui32SysClock);
HibernateRTCEnable();
休眠计数器模式(HIBERNATE_COUNTER_24HR);
}
2) RTC 设置功能。 当设置 RTC 时间时调用此函数。
- 注意:我始终设置所有参数 (SET_MIN、SET_Hour、Set_Sec、Set_Day、Set_Month、 Set_Year)时的 RTC。
void SET_Rtc_Data (void)
{
struct tm rtc_Temp;
RTC_Temp.TM_Hour= SET_MIN;
RTC_Temp.TM_min = SET_Hour;
RTC_Temp.TM_sec = Set_Sec;
RTC_Temp.TM_mDay = Set_Day;
RTC_Temp.TM_mon = SET_MONTH;
RTC_Temp.TM_year = SET_Year;
HibernateCalendarSet (&RTC_Temp);
}
3) RTC 读取功能。 该函数每秒调用一次
空 GET_RTC_Data (空)
{
struct tm rtc_Temp;
HibernateCalendarGet (&RTC_Temp);
RTC_Sec = RTC_Temp.TM_sec;
RTC_min = RTC_Temp.TM_min;
RTC_Hour = RTC_Temp.TM_Hour;
RTC_DAY = RTC_Temp.TM_mday;
RTC_MONTH = RTC_Temp.TM_mon;
RTC_Year = RTC_Temp.TM_year;
}