Files
@ 2fa25ca2db21
Branch filter:
Location: FeatherHAB/wsprhab/src/rtc.c - annotation
2fa25ca2db21
1.8 KiB
text/plain
Don't zero out everything in position, because we need some of that data; fix timer clocking
bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 bb703e19f242 | //
// RTC: configure real-time clock
//
#include "stm32f0xx_hal.h"
#include "rtc.h"
RTC_HandleTypeDef hrtc;
static void Error_Handler(void)
{
volatile crap = 1;
}
// Initialize RTC
void rtc_init(void)
{
__HAL_RCC_RTC_ENABLE();
RTC_TimeTypeDef sTime;
RTC_DateTypeDef sDate;
RTC_AlarmTypeDef sAlarm;
hrtc.Instance = RTC;
hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
hrtc.Init.AsynchPrediv = 127;
hrtc.Init.SynchPrediv = 255;
hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
if (HAL_RTC_Init(&hrtc) != HAL_OK)
{
Error_Handler();
}
sTime.Hours = 0x0;
sTime.Minutes = 0x0;
sTime.Seconds = 0x0;
sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
sTime.StoreOperation = RTC_STOREOPERATION_RESET;
if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD) != HAL_OK)
{
Error_Handler();
}
sDate.WeekDay = RTC_WEEKDAY_MONDAY;
sDate.Month = RTC_MONTH_JANUARY;
sDate.Date = 0x1;
sDate.Year = 0x0;
if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BCD) != HAL_OK)
{
Error_Handler();
}
/**Enable the Alarm A
*/
sAlarm.AlarmTime.Hours = 0x0;
sAlarm.AlarmTime.Minutes = 0x0;
sAlarm.AlarmTime.Seconds = 0x0;
sAlarm.AlarmTime.SubSeconds = 0x0;
sAlarm.AlarmTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
sAlarm.AlarmTime.StoreOperation = RTC_STOREOPERATION_RESET;
sAlarm.AlarmMask = RTC_ALARMMASK_NONE;
sAlarm.AlarmSubSecondMask = RTC_ALARMSUBSECONDMASK_ALL;
sAlarm.AlarmDateWeekDaySel = RTC_ALARMDATEWEEKDAYSEL_DATE;
sAlarm.AlarmDateWeekDay = 0x1;
sAlarm.Alarm = RTC_ALARM_A;
if (HAL_RTC_SetAlarm(&hrtc, &sAlarm, RTC_FORMAT_BCD) != HAL_OK)
{
Error_Handler();
}
}
|