Jan. 12th, 2023

eddy_em: (Default)
Начал ковыряться с RTC. В отличие от убогого F103, здесь все с регистрами почти нормально (разве что они в BCD формате, да еще и кривом, что добавляет немало хлопот с лишними вычислениями). Инициализация достаточно просто делается, нужно лишь почитать мануал: убираем защиту от чтения в регистре PWR->CR1, запускаем тактирование, запускаем LSE, настраиваем тактирование RTC от LSE, разблокируем от записи регистры конфигурации RTC (для этого последовательно пишем 0xCA и 0x53 в регистр RTC->WPR), входим в режим инициализации (RTC->ICSR |= RTC_ICSR_INIT), ждем установки флага инициализации, устанавливаем RTC->PRER (0x7f и 0xff), при необходимости выставляем дату, выходим из режима инициализации. Вуаля — RTC работает. Причем, работает он и в режиме отладки, и в процессе софтового сброса.
Со всякими будильниками заморачиваться не буду. Пока написал функцию представления времени в стандартном формате команды date. Потом еще сделаю установку заданных даты/времени и коррекцию частоты (регистром RTC->CALR).

April 2025

S M T W T F S
  1 23 45
67 89101112
13141516171819
20212223242526
27282930   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 22nd, 2025 10:10 am
Powered by Dreamwidth Studios