сделано плавное переливание через codex

This commit is contained in:
2026-05-25 18:01:19 +03:00
parent 08ae821797
commit 4724b514cd
8 changed files with 254 additions and 27 deletions

View File

@@ -3,6 +3,7 @@
#include "rtc.h"
static uint8_t dutyValue = 5;
static uint8_t fadeValue = 5;
static time_t currentTime;
static uint8_t led_enable;
RTC_TimeTypeDef rtc_time;
@@ -12,6 +13,7 @@ RTC_TimeTypeDef rtc_time;
#define BKP_DR_POWERON_SONG RTC_BKP_DR5
#define BKP_DR_ALARM_SONG RTC_BKP_DR6
#define BKP_DR_MENU_SOUND RTC_BKP_DR3
#define BKP_DR_FADE RTC_BKP_DR4
// Яркость в RTC Backup Register (используем BKP_DR1)
static void SaveDuty(void) {
@@ -23,9 +25,20 @@ static void LoadDuty(void) {
dutyValue = (val <= 10 && val > 0) ? (uint8_t)val : 5;
}
static void SaveFade(void) {
HAL_RTCEx_BKUPWrite(&hrtc, BKP_DR_FADE, fadeValue);
}
static void LoadFade(void) {
uint32_t val = HAL_RTCEx_BKUPRead(&hrtc, BKP_DR_FADE);
fadeValue = (val <= 10) ? (uint8_t)val : 5;
}
void ClockManager_Init(void) {
LoadDuty();
LoadFade();
Segment_SetBrightness(dutyValue * 10);
Segment_SetFade(fadeValue);
// Если RTC не инициализирован - сброс времени
if (HAL_RTC_GetTime(&hrtc, &rtc_time, RTC_FORMAT_BIN) != HAL_OK) {
@@ -77,6 +90,17 @@ void ClockManager_SetDuty(uint8_t value) {
SaveDuty();
}
uint8_t ClockManager_GetFade(void) {
return fadeValue;
}
void ClockManager_SetFade(uint8_t value) {
if (value > 10) value = 10;
fadeValue = value;
Segment_SetFade(fadeValue);
SaveFade();
}
void ClockManager_ResetTime(void) {
ClockManager_SetTime(0, 0, 0);
}