реклама на сайте
подробности

 
 
> Настройка RTC для stm8L051F3, помогите разобраться в тонкостях настройки
Caruso
сообщение Sep 23 2014, 14:04
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 88
Регистрация: 15-12-09
Пользователь №: 54 266



Использую микроконтроллер stm8L051F3 и StdPeriph_Driver. В качестве источника тактовой частоты для данного микроконтроллера выбран генератор HSI. Для тактирование модуля RTC дополнительно включается LSI. Я хотел бы что бы модуль RTC генерировал прерывание WakeUp с частотой около 1 раз в минуту. Так вот из этого ничего не получается.
Частота прерываний постоянно одна и таже = около 1Гц.
Вот код
CODE
//разрешаем переключение источника тактовой частоты
CLK_SYSCLKSourceSwitchCmd(ENABLE);
//включаем LSI
CLK_LSICmd(ENABLE);
//ждем пока LSI запустится
while (CLK_GetFlagStatus(CLK_FLAG_LSIRDY) == RESET);
//устанавливаем делитель частоты
CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_16);
//запрещаем переключение источника тактовой частоты
CLK_SYSCLKSourceSwitchCmd(DISABLE);




//выбираем в качестве источника тактирования для RTC частоту LSI/64
CLK_RTCClockConfig(CLK_RTCCLKSource_LSI, CLK_RTCCLKDiv_64);
//тактируем блок RTC
CLK_PeripheralClockConfig(CLK_Peripheral_RTC, ENABLE);
//частота для тактирования WakeUp уменьшается в 16 раз
RTC_WakeUpClockConfig(RTC_WakeUpClock_RTCCLK_Div16);
//разрешение прерывания от WakeUp
RTC_ITConfig(RTC_IT_WUT, ENABLE);
//устанавливаем длительность таймера WakeUp
RTC_SetWakeUpCounter(100);
//разрешаем работу таймера WakeUp
RTC_WakeUpCmd(ENABLE);

asm("RIM");



Почему частота прерываний не зависит от функции RTC_SetWakeUpCounter(100);?
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 20:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01337 секунд с 7
ELECTRONIX ©2004-2016