ICARUS OS (Intelligent Cooperative Architecture for Real-time Unified Systems) 0.1.0
Preemptive Real-Time Operating System for ARM Cortex-M7
Loading...
Searching...
No Matches
rtc.c
Go to the documentation of this file.
1/* USER CODE BEGIN Header */
19/* USER CODE END Header */
20/* Includes ------------------------------------------------------------------*/
21#include "bsp/rtc.h"
22#include "bsp/error.h"
23
24/* USER CODE BEGIN 0 */
25
26/* USER CODE END 0 */
27
28RTC_HandleTypeDef hrtc;
29
30/* RTC init function */
31void MX_RTC_Init(void)
32{
33
34 /* USER CODE BEGIN RTC_Init 0 */
35
36 /* USER CODE END RTC_Init 0 */
37
38 RTC_TimeTypeDef sTime = {0};
39 RTC_DateTypeDef sDate = {0};
40
41 /* USER CODE BEGIN RTC_Init 1 */
42
43 /* USER CODE END RTC_Init 1 */
44
47 hrtc.Instance = RTC;
48 hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
49 hrtc.Init.AsynchPrediv = 127;
50 hrtc.Init.SynchPrediv = 255;
51 hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
52 hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
53 hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
54 hrtc.Init.OutPutRemap = RTC_OUTPUT_REMAP_NONE;
55 if (HAL_RTC_Init(&hrtc) != HAL_OK)
56 {
58 }
59
60 /* USER CODE BEGIN Check_RTC_BKUP */
61
62 /* USER CODE END Check_RTC_BKUP */
63
66 sTime.Hours = 0x12;
67 sTime.Minutes = 0x0;
68 sTime.Seconds = 0x0;
69 sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
70 sTime.StoreOperation = RTC_STOREOPERATION_RESET;
71 if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD) != HAL_OK)
72 {
74 }
75 sDate.WeekDay = RTC_WEEKDAY_MONDAY;
76 sDate.Month = RTC_MONTH_JUNE;
77 sDate.Date = 0x1;
78 sDate.Year = 0x20;
79
80 if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BCD) != HAL_OK)
81 {
83 }
84 /* USER CODE BEGIN RTC_Init 2 */
85
86 /* USER CODE END RTC_Init 2 */
87
88}
89
90void HAL_RTC_MspInit(RTC_HandleTypeDef* rtcHandle)
91{
92
93 RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
94 if(rtcHandle->Instance==RTC)
95 {
96 /* USER CODE BEGIN RTC_MspInit 0 */
97
98 /* USER CODE END RTC_MspInit 0 */
99
102 PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
103 /* LSI matches nominal 32 kHz well enough for prescalers; avoids LSE after warm reset */
104 PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSI;
105 if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
106 {
108 }
109
110 /* RTC clock enable */
111 __HAL_RCC_RTC_ENABLE();
112 /* USER CODE BEGIN RTC_MspInit 1 */
113
114 /* USER CODE END RTC_MspInit 1 */
115 }
116}
117
118void HAL_RTC_MspDeInit(RTC_HandleTypeDef* rtcHandle)
119{
120
121 if(rtcHandle->Instance==RTC)
122 {
123 /* USER CODE BEGIN RTC_MspDeInit 0 */
124
125 /* USER CODE END RTC_MspDeInit 0 */
126 /* Peripheral clock disable */
127 __HAL_RCC_RTC_DISABLE();
128 /* USER CODE BEGIN RTC_MspDeInit 1 */
129
130 /* USER CODE END RTC_MspDeInit 1 */
131 }
132}
133
134/* USER CODE BEGIN 1 */
135
136/* USER CODE END 1 */
ICARUS OS Error Handling Interface.
void Error_Handler(void)
System error handler for unrecoverable faults.
Definition error.c:50
void HAL_RTC_MspDeInit(RTC_HandleTypeDef *rtcHandle)
Definition rtc.c:118
void HAL_RTC_MspInit(RTC_HandleTypeDef *rtcHandle)
Definition rtc.c:90
RTC_HandleTypeDef hrtc
Definition rtc.c:28
void MX_RTC_Init(void)
Definition rtc.c:31
This file contains all the function prototypes for the rtc.c file.