主题中讨论的其他器件:CC3100
感谢您为我们的 MCU TM4C129ENCPDTI3和 CC3100模块产品中的一些问题提供技术支持。
在我们的产品中、我们使用微控制器的内置 RTC (实时时钟)功能。 我们发现 RTC 值在现场(我们的系统安装在纺织机器中)一段时间内损坏一次。
请在下面找到电路和软件详细信息。
我们在实施中使用了 TI 库。
在我们开始生产时、请仔细查看并支持我们尽早解决问题、此问题将会阻止我们的生产和客户声誉。
电路详细信息:
软件:
在 Init()函数期间
ROM_SysCtlPeripheralEnable (SYSCTL_Periph_HIBERNATE);
HibernateEnableExpClk (g_SysClock);
HibernateClockConfig (HIBERNATE_OSC_LOWDRIVE);
HibernateRTCEnable();
HibernateCounterMode (HIBERNATE_COUNTER_24HR);//将休眠模块计数器配置为24小时日历模式。
在无限循环中的主程序中、我们调用了以下代码
struct tm temp_time;
DateTimeGet (temp_time);
Real_time.TM_mday = temp_time.TM_mday;
Real_time.TM_mon = temp_time.TM_mon+1;
Real_time.TM_year = temp_time.TM_year;
Real_Time.TM_Hour = temp_time.TM_Hour;
Real_time.TM_min = temp_time.TM_min;
Real_time.TM_sec = temp_time.TM_sec;
其中 DateTimeGet ()的编码如下所示
//
//
//此函数从的日历逻辑中读取当前日期和时间
//休眠模块。 返回状态表示读取的数据的有效性。
//如果接收到的数据有效,则将24小时时间格式转换为
// 12小时格式。
//
//
布尔
DateTimeGet (struct tm *时间段)
{
HibernateCalendarGet (Stime);//获取最新时间。
Stime->TM_year += 1900;
if ((((Stime->TM_sec < 0)||(Stime->TM_sec > 59))||
(((Stime->TM_min < 0)||(Stime->TM_min > 59))||
(((Stime->TM_Hour < 0)||(Stime->TM_Hour > 23))||
((Stime->TM_mday < 1)||(Stime->TM_mday > 31))||
(((Stime->TM_mon < 0)||(Stime->TM_mon > 11))||
(((Stime->TM_year < 1900)||(Stime->TM_year > 2099)))
{
返回 false;
}
返回 true;
}
如果您想了解我们的更多详细信息、请告知我们。 如果您不是合适的联系人、请通过转发此请求来指导我们。
感谢您的支持


