Ignore:
Timestamp:
Feb 11, 2025, 1:59:45 PM (3 months ago)
Author:
Zed
Message:

RTC is working.

Location:
ctrl/firmware/Main/CubeMX
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • ctrl/firmware/Main/CubeMX/Core/Inc/FreeRTOSConfig.h

    r86 r87  
    5858
    5959#define configENABLE_FPU                         1
    60 #define configENABLE_MPU                         1
     60#define configENABLE_MPU                         0
    6161
    6262#define configUSE_PREEMPTION                     1
  • ctrl/firmware/Main/CubeMX/Core/Inc/rtc.h

    r47 r87  
    3737/* USER CODE BEGIN Private defines */
    3838
     39#define RTC_DATE_TIME_REG                                       RTC_BKP_DR31
     40#define RTC_DATE_TIME_FIRST_START_ID            (0xEC)
     41
    3942/* USER CODE END Private defines */
    4043
  • ctrl/firmware/Main/CubeMX/Core/Src/freertos.c

    r84 r87  
    175175  /* add threads, ... */
    176176
    177   TaskHandle_t r = xTaskCreateStatic(keysTaskStart, keysTaskName, KEYS_TASK_STACK_DEPTH_WORDS, NULL, 25, keysTaskStackBuffer, &keysTaskBuffer);
     177  TaskHandle_t r = xTaskCreateStatic(keysTaskStart, keysTaskName, KEYS_TASK_STACK_DEPTH_WORDS, NULL, 24, keysTaskStackBuffer, &keysTaskBuffer);
    178178  if (r == NULL) printf("Cannot create %s!\n", keysTaskName);
    179179
    180   r = xTaskCreateStatic(ethTaskStart, ethTaskName, ETH_TASK_STACK_DEPTH_WORDS, NULL, 25, ethTaskStackBuffer, &ethTaskBuffer);
     180  r = xTaskCreateStatic(ethTaskStart, ethTaskName, ETH_TASK_STACK_DEPTH_WORDS, NULL, 24, ethTaskStackBuffer, &ethTaskBuffer);
    181181  if (r == NULL) printf("Cannot create %s!\n", ethTaskName);
    182182
    183   r = xTaskCreateStatic(mbSlaveTaskStart, mbSlaveTaskName, MB_SLAVE_TASK_STACK_DEPTH_WORDS, NULL, 25, mbSlaveTaskStackBuffer, &mbSlaveTaskBuffer);
     183  r = xTaskCreateStatic(mbSlaveTaskStart, mbSlaveTaskName, MB_SLAVE_TASK_STACK_DEPTH_WORDS, NULL, 24, mbSlaveTaskStackBuffer, &mbSlaveTaskBuffer);
    184184  if (r == NULL) printf("Cannot create %s!\n", mbSlaveTaskName);
    185185
    186   r = xTaskCreateStatic(beeperTaskStart, beeperTaskName, BEEPER_TASK_STACK_DEPTH_WORDS, NULL, 25, beeperTaskStackBuffer, &beeperTaskBuffer);
     186  r = xTaskCreateStatic(beeperTaskStart, beeperTaskName, BEEPER_TASK_STACK_DEPTH_WORDS, NULL, 24, beeperTaskStackBuffer, &beeperTaskBuffer);
    187187  if (r == NULL) printf("Cannot create %s!\n", beeperTaskName);
    188188
    189   r = xTaskCreateStatic(onewireTaskStart, onewireTaskName, ONEWIRE_TASK_STACK_DEPTH_WORDS, NULL, 25, onewireTaskStackBuffer, &onewireTaskBuffer);
     189  r = xTaskCreateStatic(onewireTaskStart, onewireTaskName, ONEWIRE_TASK_STACK_DEPTH_WORDS, NULL, 24, onewireTaskStackBuffer, &onewireTaskBuffer);
    190190  if (r == NULL) printf("Cannot create %s!\n", onewireTaskName);
    191191
  • ctrl/firmware/Main/CubeMX/Core/Src/rtc.c

    r75 r87  
    5959  /* USER CODE BEGIN Check_RTC_BKUP */
    6060
     61  uint32_t firstRunID = HAL_RTCEx_BKUPRead(&hrtc, RTC_DATE_TIME_REG);
     62  if (firstRunID == RTC_DATE_TIME_FIRST_START_ID) return;
     63
    6164  /* USER CODE END Check_RTC_BKUP */
    6265
    6366  /** Initialize RTC and set the Time and Date
    6467  */
    65   sTime.Hours = 0x0;
    66   sTime.Minutes = 0x0;
    67   sTime.Seconds = 0x0;
     68  sTime.Hours = 12;
     69  sTime.Minutes = 0;
     70  sTime.Seconds = 0;
    6871  sTime.DayLightSaving = RTC_DAYLIGHTSAVING_NONE;
    6972  sTime.StoreOperation = RTC_STOREOPERATION_RESET;
    70   if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BCD) != HAL_OK)
     73  if (HAL_RTC_SetTime(&hrtc, &sTime, RTC_FORMAT_BIN) != HAL_OK)
    7174  {
    7275    Error_Handler();
     
    7477  sDate.WeekDay = RTC_WEEKDAY_MONDAY;
    7578  sDate.Month = RTC_MONTH_JANUARY;
    76   sDate.Date = 0x1;
    77   sDate.Year = 0x0;
     79  sDate.Date = 1;
     80  sDate.Year = 25;
    7881
    79   if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BCD) != HAL_OK)
     82  if (HAL_RTC_SetDate(&hrtc, &sDate, RTC_FORMAT_BIN) != HAL_OK)
    8083  {
    8184    Error_Handler();
    8285  }
    8386  /* USER CODE BEGIN RTC_Init 2 */
     87
     88  HAL_RTCEx_BKUPWrite(&hrtc, RTC_DATE_TIME_REG, RTC_DATE_TIME_FIRST_START_ID);
    8489
    8590  /* USER CODE END RTC_Init 2 */
  • ctrl/firmware/Main/CubeMX/charger.ioc

    r85 r87  
    671671RCC.VCOInput2Freq_Value=12500000
    672672RCC.VCOInput3Freq_Value=1000000
     673RTC.Format=RTC_FORMAT_BIN
     674RTC.Hours=12
     675RTC.IPParameters=Format,Hours,Year
     676RTC.Year=25
    673677SDMMC1.ClockDiv=2
    674678SDMMC1.ClockPowerSave=SDMMC_CLOCK_POWER_SAVE_ENABLE
Note: See TracChangeset for help on using the changeset viewer.