Не Могу Разобраться С Прерыванием (Stm32Vldiscovery).

25-03-2013, 20:51 От: admin Посмотрели: 725
Здравствуйте.

Не могу разобраться с прерыванием (Stm32Vldiscovery).






#include "stm32f10x.h"

char a=1;

unsigned char main (void)
{

//НАСТРОЙКА ПРЕРЫВАНИЙ
__enable_irq (); //разрешение глобальных прерываний
RTC->CRL |= RTC_CRL_CNF; //разрешить конфигурирование регистров RTC
RTC->CRH = RTC_CRH_SECIE;//разрешить прерывание от секундных импульсов
RTC->CRL &= ~RTC_CRL_CNF; //выйти из режима конфигурирования
NVIC_EnableIRQ (RTC_IRQn);


//разрешить тактирование модулей управления питанием и управлением резервной областью
RCC->APB1ENR |= RCC_APB1ENR_PWREN | RCC_APB1ENR_BKPEN;
//разрешить доступ к области резервных данных
PWR->CR |= PWR_CR_DBP;
//если часы выключены - инициализировать их
if ((RCC->BDCR & RCC_BDCR_RTCEN) != RCC_BDCR_RTCEN)
{
//выполнить сброс области резервных данных
RCC->BDCR |= RCC_BDCR_BDRST;
RCC->BDCR &= ~RCC_BDCR_BDRST;

//выбрать источником тактовых импульсов внешний кварц 32768 и подать тактирование
RCC->BDCR |= RCC_BDCR_RTCEN | RCC_BDCR_RTCSEL_LSE;

RTC->CRL |= RTC_CRL_CNF;
RTC->PRLL = 0x7FFF; //регистр деления на 32768
RTC->CRL &= ~RTC_CRL_CNF;

//установить бит разрешения работы и дождаться установки бита готовности
RCC->BDCR |= RCC_BDCR_LSEON;
while ((RCC->BDCR & RCC_BDCR_LSEON) != RCC_BDCR_LSEON){}

RTC->CRL &= (uint16_t)~RTC_CRL_RSF;
while((RTC->CRL & RTC_CRL_RSF) != RTC_CRL_RSF){}

return 1;
}

for(;;);

}

void RTC_IRQHandler(void)
{
//причина прерывания - переполнение входного делителя (новая секунда)
if(RTC->CRL & RTC_CRL_SECF)
{
RTC->CRL &= ~RTC_CRL_SECF; //сбросить флаг (обязательно!!!)
//выполняем какие-то действия
++a;


}
}



Когда выполняется функция   NVIC_EnableIRQ (RTC_IRQn);

В окне дизасемблера программа весит в BusFault_Handler





Не Могу Разобраться С Прерыванием (Stm32Vldiscovery).
Раздел: Песочница или Вопрос-Ответ

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться, либо войти на сайт под своим именем.

Обсудить на форуме


На момент добавления Не Могу Разобраться С Прерыванием (Stm32Vldiscovery). все ссылки были рабочие.
Все публикации статей, книг и журналов, представлены на этом сайте, исключительно для ознакомления,
авторские права на эти публикации принадлежат авторам статей, книг и издательствам журналов!
Подробно тут | Жалоба
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.


Опрос

Ваши предпочтения в TRX


Одинарное преобразование
Двойное преобразование
Прямое преобразование
SDR
Другое
Мне всё равно

Популярные новости
Календарь новостей
«    Май 2024    »
ПнВтСрЧтПтСбВс
 12345
6789101112
13141516171819
20212223242526
2728293031