Вход
Наше всё
Теги
codebook
无线电组件
Поиск
Опросы
Закон
Понедельник
25 ноября
О смысле всего сущего
0xFF
Средства и методы разработки
Мобильная и беспроводная связь
Блошиный рынок
Объявления
Микроконтроллеры
PLD, FPGA, DSP
AVR
PIC
ARM, RISC-V
Технологии
Кибернетика, автоматика, протоколы
Схемы, платы, компоненты
ARM, RISC-V контроллеры
260633
Топик полностью
koyodza
(04.07.2011 12:02, просмотров: 134)
ответил
Bublic
на
Неужели никто не пробовал? Тогда плохо мое дело, ни фига не врубаюсь как работает :) Может, не так проверяю? Вхожу в режим конфигурации регистров RTC, прописываю тестовыми значениями регистры CR,PRL,CNT(все с задержкой 50 мс чтобы усвоилось).
у меня работает так
void RtcInit(void) { CLR(utc); GetBackupParam(&utc.offset); RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); PWR_BackupAccessCmd(ENABLE); RCC_LSEConfig(RCC_LSE_ON); while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET); RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE); RCC_RTCCLKCmd(ENABLE); RTC_WaitForSynchro(); RTC_WaitForLastTask(); RTC_SetPrescaler(32767); // RTC period = RTCCLK/RTC_PR = (32.768 KHz)/(32767+1) RTC_WaitForLastTask(); utc.t0 = RTC_GetCounter() - sysSec; } BYTE BackupInit(void) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); PWR_BackupAccessCmd(ENABLE); DATA_VALID = FALSE; if (GetBackupCheckSum() == BKP_ReadBackupRegister(BKP_DR10)) DATA_VALID = TRUE; return DATA_VALID; }
чтение backup регистров
x = BKP_ReadBackupRegister(addr);
запись backup регистров
BKP_WriteBackupRegister(addr, x);
Ответить
Да работать-то он работает. Хочется поглубже узнать :) А Вы не пробовали сбрасывать RTC-шные регистры по команде сброса Bakup-домена? Как это сделать, чтобы видно было?
-
Bublic
(04.07.2011 14:44
,
)
нет, пока не пробовал. У меня RTC почти нигде не используется, только в одном текущем проекте. Кстати, заметил проблемы с запуском некоторых кварцев, и даже самопроизвольной остановкой. С причинами пока не разбирался
-
koyodza
(04.07.2011 23:56
)