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

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
astrgan
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

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

Сообщение astrgan »

Здравствуйте.
Не могу разобраться с прерыванием (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

Изображение
astrgan
Встал на лапы
Сообщения: 103
Зарегистрирован: Чт мар 08, 2012 01:13:30

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

Сообщение astrgan »

По ходу я не доделал настройки потому что в keil проект заработал.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

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

Сообщение dosikus »

astrgan писал(а):По ходу я не доделал настройки потому что в keil проект заработал.

Да бы другие не вляпались , в IAR в дебуггере прерывания нужно не только настраивать но и разрешать .
Кому интересно - ройте хелп на эту тему ...
Ответить

Вернуться в «ARM»