请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR5994 大家好
我正在尝试通过分配时间库中的值来初始化 MSP430FR5994 Launchpad 上的 RTC_C。
当我使用0x00格式的硬编码值时、下游编码的行为与我使用变量赋值时的行为不同
如下所示。 我认为问题是类型不匹配、并尝试转换、检查值等、但我无法解决
问题-日历对变量赋值的解释方式与硬编码值不同。 RTC 初始化使用
二进制、因此这不是一个十六进制问题。 时间间隔字段(TM_sec、TM_min 等)是整数、而日历字段是 uint8_t
我们非常感谢您的任何帮助。
谢谢
Jim
void Init_rtc () { struct tm *info; time_t rawtime;//type 为 long。 用于保存编码的日历时间 Time (&rawtime);//函数获取相对于1/1/1970 (以秒为单位)的当前系统时间 info=localtime (&rawtime);//返回指向存储日期和时间的 TM 结构的指针 mktime (info);//normalize 值 //调试的分配很不一样 uint8_t sec =(uint8_t)(info->tm_sec); uint8_t min=(uint8_t)(info->tm_min); uint8_t hours =(uint8_t)(info->tm_hour); uint8_t weekday =(uint8_t)(info->tm_wday); uint8_t month=(uint8_t)(info->tm_mon); uint8_t dayofmonth=(uint8_t)(info->tm_mday); uint8_t 年=(uint8_t)(info->tm_year); //设置日历的当前时间 calender.seconds = sec;//0x25; calender.minutes = min;//0x05; 日历.小时数 =小时;//0x0C;//12 calender.DayOfWeek =工作日;//0x00; calender.dayofmonth =月;//0x05; 日历月 =月+1;//0x02; 日历。年 = 0x07e3;//0x2019; //使用上面指定的日历初始化 RTC RTC_C_initCalendar (RTC_C_base、 日历(&A)、 RTC_C_FORMAT_BINARY);//使用 RTC_C_FORMAT_BCD 扰码文件时间戳 RTC_C_setCalendarEvent (RTC_C_base、 RTC_C_CALENDAREVENT_INTOTECHANGE ); RTC_C_clearInterrupt (RTC_C_base、 RTC_C_TIME_EVENT_INTERRUPT ); RTC_C_enableInterrupt (RTC_C_base、 RTC_C_TIME_EVENT_INTERRUPT ); //启动 RTC 时钟 RTC_C_startClock (RTC_C_base); }