This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/TM4C129ENCPDT:设置 RTC 日期问题

Guru**** 2606375 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/749698/ccs-tm4c129encpdt-issue-setting-rtc-date

器件型号:TM4C129ENCPDT

工具/软件: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;

 

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我无法重新创建您的问题。 您是否初始化了 TM 结构的所有元素?

    struct tm
    {
    int tm_sec; /*分钟后的秒-[0、59]*/
    int TM_min; /*小时后的分钟 -[0、59]*/
    int tm_hour; /*午夜后的小时-[0、23]*/
    int tm_mday; /*月中某天 -[1、31]*/
    int tm_mon; /*自1月以来的月数 -[0、11]*/
    int tm_year; /*自1900年以来的年份 *
    int tm_wday; /*自星期日以来的天数 -[0、6]*/
    int tm_yday; /*自1月1日起的天数 -[0、365]*/
    int tm_isdst;/*夏令时标志 */
    };
    

    我附加了一个执行静态初始化的项目、然后打印当前日期和时间。 使用 Code Composers "File""Import"命令将此项目添加到您的工作区。

    /cfs-file/__key/communityserver-discussions-components-files/908/Calendar.zip