50 uint32_t bcd2hex (uint32_t a)
52 if ((a&0x000000F0) == 0)
return (a&0x0000000F);
53 else return ((a&0x0000000F)+ 10*((a&0x000000F0)>>4));
56 uint32_t hex2bcd (uint32_t x)
66 NT_RTC->SHDW_bit.UPDTEN = (uint32_t)State;
73 RTC_ShadowUpd(DISABLE);
75 RTC_ShadowUpd(ENABLE);
79 RTC_Time->
RTC_Hour = bcd2hex((uint32_t)((time & TIME_HOUR_Msk) >> TIME_HOUR_Pos));
80 RTC_Time->
RTC_Minute = bcd2hex((uint32_t)((time & TIME_MINUTE_Msk) >> TIME_MINUTE_Pos));
81 RTC_Time->
RTC_Second = bcd2hex((uint32_t)((time & TIME_SECOND_Msk) >> TIME_SECOND_Pos));
82 RTC_Time->
RTC_Psecond = bcd2hex((uint32_t)((time & TIME_SPLIT_SEC_Msk) >> TIME_SPLIT_SEC_Pos));
86 RTC_Time->
RTC_Hour = (uint32_t)((time & TIME_HOUR_Msk) >> TIME_HOUR_Pos);
87 RTC_Time->
RTC_Minute = (uint32_t)((time & TIME_MINUTE_Msk) >> TIME_MINUTE_Pos);
88 RTC_Time->
RTC_Second = (uint32_t)((time & TIME_SECOND_Msk) >> TIME_SECOND_Pos);
89 RTC_Time->
RTC_Psecond = (uint32_t)((time & TIME_SPLIT_SEC_Msk) >> TIME_SPLIT_SEC_Pos);
96 RTC_ShadowUpd(DISABLE);
100 RTC_Date->
RTC_Day = bcd2hex(NT_RTC->DAY);
101 RTC_Date->
RTC_Month = bcd2hex(NT_RTC->MONTH);
102 RTC_Date->
RTC_Year = bcd2hex(NT_RTC->YEAR);
107 RTC_Date->
RTC_Day = NT_RTC->DAY;
111 RTC_ShadowUpd(ENABLE);
132 NT_RTC->HOUR = hex2bcd(RTC_Time->
RTC_Hour);
133 NT_RTC->MINUTE = hex2bcd(RTC_Time->
RTC_Minute);
134 NT_RTC->SECOND = hex2bcd(RTC_Time->
RTC_Second);
166 NT_RTC->DAY = hex2bcd(RTC_Date->
RTC_Day);
167 NT_RTC->MONTH = hex2bcd(RTC_Date->
RTC_Month);
168 NT_RTC->YEAR = hex2bcd(RTC_Date->
RTC_Year);
173 NT_RTC->DAY = RTC_Date->
RTC_Day;
#define IS_RTC_DAY(DAY)
Макрос проверки попадания значений дней в допустимый диапазон.
#define IS_RTC_PSECOND(PSECOND)
Макрос проверки попадания значений долей секунд в допустимый диапазон.
FunctionalState
Описывает логическое состояние периферии. Используется для операций включения/выключения периферийных...
#define IS_RTC_WEEKDAY(WEEKDAY)
Макрос проверки аргументов типа RTC_Weekday_TypeDef.
RTC_Weekday_TypeDef RTC_Weekday
RTC_Format_TypeDef
Формат ввода/вывода времени и даты.
#define IS_RTC_HOUR(HOUR)
Макрос проверки попадания значений часов в допустимый диапазон.
#define IS_RTC_MINUTE(MINUTE)
Макрос проверки попадания значений минут в допустимый диапазон.
#define IS_RTC_YEAR(YEAR)
Макрос проверки попадания значений лет в допустимый диапазон.
#define IS_RTC_SECOND(SECOND)
Макрос проверки попадания значений секунд в допустимый диапазон.
#define IS_RTC_MONTH(MONTH)
Макрос проверки аргументов типа RTC_Month_TypeDef.
Файл содержит все прототипы функций для таймеров